changeset 20055:1929d9218ac0

Fix fontname search, fontweight and fontangle for printing (bug #44668) * gl2ps-renderer.cc (glps_renderer::set_font): make fontame matching case insensitive * gl2ps-renderer.cc (glps_renderer::set_font): also add supported bold and italic fonts.
author Pantxo Diribarne <pantxo.diribarne@gmail.com>
date Tue, 31 Mar 2015 23:51:31 +0200
parents 002576bbba10
children e70df1ff58b7
files libinterp/corefcn/gl2ps-renderer.cc
diffstat 1 files changed, 36 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libinterp/corefcn/gl2ps-renderer.cc	Thu Apr 02 10:35:35 2015 -0700
+++ b/libinterp/corefcn/gl2ps-renderer.cc	Tue Mar 31 23:51:31 2015 +0200
@@ -227,20 +227,50 @@
 
   fontsize = props.get ("fontsize_points").double_value ();
 
-  caseless_str fn = props.get ("fontname").string_value ();
+  caseless_str fn = props.get ("fontname").xtolower ().string_value ();
+  bool isbold = 
+    (props.get ("fontweight").xtolower ().string_value () == "bold");
+  bool isitalic = 
+    (props.get ("fontangle").xtolower ().string_value () == "italic");
+
   fontname = "";
   if (fn == "times" || fn == "times-roman")
-    fontname = "Times-Roman";
+    {
+      if (isitalic && isbold)
+        fontname = "Times-BoldItalic";
+      else if (isitalic)
+        fontname = "Times-Italic";
+      else if (isbold)
+        fontname = "Times-Bold";
+      else
+        fontname = "Times-Roman";
+    }
   else if (fn == "courier")
-    fontname = "Courier";
+    {
+      if (isitalic && isbold)
+        fontname = "Courier-BoldOblique";
+      else if (isitalic)
+        fontname = "Courier-Oblique";
+      else if (isbold)
+        fontname = "Courier-Bold";
+      else
+        fontname = "Courier";
+    }
   else if (fn == "symbol")
     fontname = "Symbol";
   else if (fn == "zapfdingbats")
     fontname = "ZapfDingbats";
   else
-    fontname = "Helvetica";
-
-  // FIXME: add support for bold and italic
+    {
+      if (isitalic && isbold)
+        fontname = "Helvetica-BoldOblique";
+      else if (isitalic)
+        fontname = "Helvetica-Oblique";
+      else if (isbold)
+        fontname = "Helvetica-Bold";
+      else
+        fontname = "Helvetica";
+    }
 }
 
 template <typename T>