Revision: 8761
          http://matplotlib.svn.sourceforge.net/matplotlib/?rev=8761&view=rev
Author:   mdboom
Date:     2010-10-22 16:20:15 +0000 (Fri, 22 Oct 2010)

Log Message:
-----------
Merged revisions 8760 via svnmerge from 
https://matplotlib.svn.sf.net/svnroot/matplotlib/branches/v1_0_maint

........
  r8760 | mdboom | 2010-10-22 12:17:26 -0400 (Fri, 22 Oct 2010) | 2 lines
  
  Fix problems with funnily encoded fonts in PS backend.
........

Modified Paths:
--------------
    trunk/matplotlib/lib/matplotlib/backends/backend_ps.py
    trunk/matplotlib/ttconv/pprdrv_tt.cpp

Property Changed:
----------------
    trunk/matplotlib/


Property changes on: trunk/matplotlib
___________________________________________________________________
Modified: svnmerge-integrated
   - /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 
/branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8758 
/trunk/matplotlib:1-7315
   + /branches/mathtex:1-7263 /branches/v0_91_maint:1-6428 
/branches/v0_98_5_maint:1-7253 /branches/v1_0_maint:1-8760 
/trunk/matplotlib:1-7315

Modified: trunk/matplotlib/lib/matplotlib/backends/backend_ps.py
===================================================================
--- trunk/matplotlib/lib/matplotlib/backends/backend_ps.py      2010-10-22 
16:17:26 UTC (rev 8760)
+++ trunk/matplotlib/lib/matplotlib/backends/backend_ps.py      2010-10-22 
16:20:15 UTC (rev 8761)
@@ -610,8 +610,6 @@
         draw a Text instance
         """
         # local to avoid repeated attribute lookups
-
-
         write = self._pswriter.write
         if debugPS:
             write("% text\n")
@@ -622,71 +620,9 @@
         elif ismath:
             return self.draw_mathtext(gc, x, y, s, prop, angle)
 
-        elif isinstance(s, unicode):
-            return self.draw_unicode(gc, x, y, s, prop, angle)
-
         elif rcParams['ps.useafm']:
-            font = self._get_font_afm(prop)
-
-            l,b,w,h = font.get_str_bbox(s)
-
-            fontsize = prop.get_size_in_points()
-            l *= 0.001*fontsize
-            b *= 0.001*fontsize
-            w *= 0.001*fontsize
-            h *= 0.001*fontsize
-
-            if angle==90: l,b = -b, l # todo generalize for arb rotations
-
-            pos = _nums_to_str(x-l, y-b)
-            thetext = '(%s)' % s
-            fontname = font.get_fontname()
-            fontsize = prop.get_size_in_points()
-            rotate = '%1.1f rotate' % angle
-            setcolor = '%1.3f %1.3f %1.3f setrgbcolor' % gc.get_rgb()[:3]
-            #h = 0
-            ps = """\
-gsave
-/%(fontname)s findfont
-%(fontsize)s scalefont
-setfont
-%(pos)s moveto
-%(rotate)s
-%(thetext)s
-%(setcolor)s
-show
-grestore
-    """ % locals()
-            self._draw_ps(ps, gc, None)
-
-        else:
-            font = self._get_font_ttf(prop)
-            font.set_text(s, 0, flags=LOAD_NO_HINTING)
-            self.track_characters(font, s)
-
             self.set_color(*gc.get_rgb())
-            self.set_font(font.get_sfnt()[(1,0,0,6)], 
prop.get_size_in_points())
-            write("%s m\n"%_nums_to_str(x,y))
-            if angle:
-                write("gsave\n")
-                write("%s rotate\n"%_num_to_str(angle))
-            descent = font.get_descent() / 64.0
-            if descent:
-                write("0 %s rmoveto\n"%_num_to_str(descent))
-            write("(%s) show\n"%quote_ps_string(s))
-            if angle:
-                write("grestore\n")
 
-    def new_gc(self):
-        return GraphicsContextPS()
-
-    def draw_unicode(self, gc, x, y, s, prop, angle):
-        """draw a unicode string.  ps doesn't have unicode support, so
-        we have to do this the hard way
-        """
-        if rcParams['ps.useafm']:
-            self.set_color(*gc.get_rgb())
-
             font = self._get_font_afm(prop)
             fontname = font.get_fontname()
             fontsize = prop.get_size_in_points()
@@ -772,6 +708,9 @@
 """ % locals()
             self._pswriter.write(ps)
 
+    def new_gc(self):
+        return GraphicsContextPS()
+
     def draw_mathtext(self, gc,
         x, y, s, prop, angle):
         """
@@ -1125,7 +1064,6 @@
                     if is_opentype_cff_font(font_filename):
                         raise RuntimeError("OpenType CFF fonts can not be 
saved using the internal Postscript backend at this time.\nConsider using the 
Cairo backend.")
                     else:
-                        fonttype = rcParams['ps.fonttype']
                         convert_ttf_to_ps(font_filename, fh, fonttype, 
glyph_ids)
         print >>fh, "end"
         print >>fh, "%%EndProlog"

Modified: trunk/matplotlib/ttconv/pprdrv_tt.cpp
===================================================================
--- trunk/matplotlib/ttconv/pprdrv_tt.cpp       2010-10-22 16:17:26 UTC (rev 
8760)
+++ trunk/matplotlib/ttconv/pprdrv_tt.cpp       2010-10-22 16:20:15 UTC (rev 
8761)
@@ -420,21 +420,19 @@
 -------------------------------------------------------------*/
 void ttfont_encoding(TTStreamWriter& stream, struct TTFONT *font, 
std::vector<int>& glyph_ids, font_type_enum target_type)
     {
-        stream.putline("/Encoding StandardEncoding def");
+        if (target_type == PS_TYPE_3) {
+            stream.printf("/Encoding [ ");
 
-        // if (target_type == PS_TYPE_3) {
-        //     stream.printf("/Encoding [ ");
+            for (std::vector<int>::const_iterator i = glyph_ids.begin();
+                 i != glyph_ids.end(); ++i) {
+                const char* name = ttfont_CharStrings_getname(font, *i);
+                stream.printf("/%s ", name);
+            }
 
-        //     for (std::vector<int>::const_iterator i = glyph_ids.begin();
-        //          i != glyph_ids.end(); ++i) {
-        //         const char* name = ttfont_CharStrings_getname(font, *i);
-        //         stream.printf("/%s ", name);
-        //     }
-
-        //     stream.printf("] def\n");
-        // } else {
-        //     stream.putline("/Encoding StandardEncoding def");
-        // }
+            stream.printf("] def\n");
+        } else {
+            stream.putline("/Encoding StandardEncoding def");
+        }
     } /* end of ttfont_encoding() */
 
 /*-----------------------------------------------------------


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

------------------------------------------------------------------------------
Nokia and AT&T present the 2010 Calling All Innovators-North America contest
Create new apps & games for the Nokia N8 for consumers in  U.S. and Canada
$10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing
Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store 
http://p.sf.net/sfu/nokia-dev2dev
_______________________________________________
Matplotlib-checkins mailing list
Matplotlib-checkins@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-checkins

Reply via email to