I have a patch for this bug that prevents PDF writing on Python 2.5 (I think OS X is a red herring in the bug report -- I was having the same problem on Linux). Python 2.5 changed from encodings.cp1252.encoding_map (a dictionary) to encodings.cp1252.encoding_table (a tuple).
http://sourceforge.net/tracker/index.php?func=detail&aid=1738494&group_id=80706&atid=560720 Cheers, Mike I have a patch for this bug that prevents PDF writing on Python 2.5 (I think OS X is a red herring in the bug report -- I was having the same problem on Linux). Python 2.5 changed from encodings.cp1252.encoding_map (a dictionary) to encodings.cp1252.encoding_table (a tuple), and this updates matplotlib to use whatever is available. http://sourceforge.net/tracker/index.php?func=detail&aid=1738494&group_id=80706&atid=560720 Cheers, Mike ------------------------------------------------------------------------ Index: backend_pdf.py =================================================================== --- backend_pdf.py (revision 3418) +++ backend_pdf.py (working copy) @@ -500,11 +500,20 @@ # composite font, based on multi-byte characters. from encodings import cp1252 - firstchar, lastchar = 0, 255 + # The "decoding_map" was changed to a "decoding_table" as of Python 2.5. + if hasattr(cp1252, 'decoding_map'): + def decode_char(charcode): + return cp1252.decoding_map[charcode] or 0 + else: + def decode_char(charcode): + return ord(cp1252.decoding_table[charcode]) or 0 + def get_char_width(charcode): - unicode = cp1252.decoding_map[charcode] or 0 + unicode = decode_char(charcode) width = font.load_char(unicode, flags=LOAD_NO_SCALE).horiAdvance return cvt(width) + + firstchar, lastchar = 0, 255 widths = [ get_char_width(charcode) for charcode in range(firstchar, lastchar+1) ] widthsObject = self.reserveObject('font widths') ------------------------------------------------------------------------ Index: backend_pdf.py =================================================================== --- backend_pdf.py (revision 3418) +++ backend_pdf.py (working copy) @@ -500,11 +500,20 @@ # composite font, based on multi-byte characters. from encodings import cp1252 - firstchar, lastchar = 0, 255 + # The "decoding_map" was changed to a "decoding_table" as of Python 2.5. + if hasattr(cp1252, 'decoding_map'): + def decode_char(charcode): + return cp1252.decoding_map[charcode] or 0 + else: + def decode_char(charcode): + return ord(cp1252.decoding_table[charcode]) or 0 + def get_char_width(charcode): - unicode = cp1252.decoding_map[charcode] or 0 + unicode = decode_char(charcode) width = font.load_char(unicode, flags=LOAD_NO_SCALE).horiAdvance return cvt(width) + + firstchar, lastchar = 0, 255 widths = [ get_char_width(charcode) for charcode in range(firstchar, lastchar+1) ] widthsObject = self.reserveObject('font widths') ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel