Revision: 3695
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=3695&view=rev
Author:   mdboom
Date:     2007-08-09 08:14:59 -0700 (Thu, 09 Aug 2007)

Log Message:
-----------
Minor PDF filesize improvement.

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py     2007-08-09 
15:14:28 UTC (rev 3694)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_pdf.py     2007-08-09 
15:14:59 UTC (rev 3695)
@@ -508,6 +508,7 @@
             charprocsObject = self.reserveObject('character procs')
             differencesArray = []
             firstchar, lastchar = 0, 255
+            bbox = [cvt(x, nearest=False) for x in font.bbox]
             
             fontdict = {
                 'Type'            : Name('Font'),
@@ -517,7 +518,7 @@
                 'FontDescriptor'  : fontdescObject,
                 'Subtype'         : Name('Type3'),
                 'Name'            : descriptor['FontName'],
-                'FontBBox'        : [cvt(x, nearest=False) for x in font.bbox],
+                'FontBBox'        : bbox,
                 'FontMatrix'      : [ .001, 0, 0, .001, 0, 0 ],
                 'CharProcs'       : charprocsObject,
                 'Encoding'        : {
@@ -575,15 +576,18 @@
             charprocs = {}
             charprocsRef = {}
             for charname, stream in rawcharprocs.items():
+                charprocDict = { 'Length': len(stream) }
+                # The 2-byte characters are used as XObjects, so they
+                # need extra info in their dictionary
+                if charname in two_byte_chars:
+                    charprocDict['Type'] = Name('XObject')
+                    charprocDict['Subtype'] = Name('Form')
+                    charprocDict['BBox'] = bbox
                 charprocObject = self.reserveObject('charProc for %s' % name)
-                self.beginStream(charprocObject.id,
-                                 None,
-                                 {'Length':  len(stream),
-                                  'Type': Name('XObject'),
-                                  'Subtype': Name('Form'),
-                                  'BBox': [cvt(x, nearest=False) for x in 
font.bbox]})
+                self.beginStream(charprocObject.id, None, charprocDict)
                 self.currentstream.write(stream)
                 self.endStream()
+
                 # Send the glyphs with ccode > 255 to the XObject dictionary,
                 # and the others to the font itself
                 if charname in two_byte_chars:


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to