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

Reply via email to