- { "AvantGarde-Book", "URW Gothic L, Book" },
- { "AvantGarde-BookOblique", "URW Gothic L, Book, Oblique" },
- { "AvantGarde-Demi", "URW Gothic L, Demi" },
- { "AvantGarde-DemiOblique", "URW Gothic L, Demi, Oblique" },
- { "Bookman-Demi", "URW Bookman L, Demi, Bold" },
- { "Bookman-DemiItalic", "URW Bookman L, Demi, Bold, Italic" },
- { "Bookman-Light", "URW Bookman L, Light" },
- { "Bookman-LightItalic", "URW Bookman L, Light, Italic" },
- { "Courier", "Nimbus Mono L, Regular" },
- { "Courier-Bold", "Nimbus Mono L, Bold" },
- { "Courier-BoldOblique", "Nimbus Mono L, Bold, Oblique" },
- { "Courier-Oblique", "Nimbus Mono L, Regular, Oblique" },
- { "Helvetica", "Nimbus Sans L, Regular" },
- { "Helvetica-Bold", "Nimbus Sans L, Bold" },
- { "Helvetica-BoldOblique", "Nimbus Sans L, Bold, Italic" },
- { "Helvetica-Narrow", "Nimbus Sans L, Regular, Condensed" },
- { "Helvetica-Narrow-Bold", "Nimbus Sans L, Bold, Condensed" },
- { "Helvetica-Narrow-BoldOblique", "Nimbus Sans L, Bold, Condensed, Italic" },
- { "Helvetica-Narrow-Oblique", "Nimbus Sans L, Regular, Condensed, Italic" },
- { "Helvetica-Oblique", "Nimbus Sans L, Regular, Italic" },
- { "NewCenturySchlbk-Bold", "Century Schoolbook L, Bold" },
- { "NewCenturySchlbk-BoldItalic", "Century Schoolbook L, Bold, Italic" },
- { "NewCenturySchlbk-Italic", "Century Schoolbook L, Italic" },
- { "NewCenturySchlbk-Roman", "Century Schoolbook L, Roman" },
- { "Palatino-Bold", "URW Palladio L, Bold" },
- { "Palatino-BoldItalic", "URW Palladio L, Bold, Italic" },
- { "Palatino-Italic", "URW Palladio L, Italic" },
- { "Palatino-Roman", "URW Palladio L, Roman" },
- { "Symbol", "Standard Symbols L, Regular" },
- { "Times-Bold", "Nimbus Roman No9 L, Medium" },
- { "Times-BoldItalic", "Nimbus Roman No9 L, Medium, Italic" },
- { "Times-Italic", "Nimbus Roman No9 L, Regular, Italic" },
- { "Times-Roman", "Nimbus Roman No9 L, Regular" },
- { "ZapfChancery-MediumItalic", "URW Chancery L, Medium, Italic" },
- { "ZapfDingbats", "Dingbats" },
+{"AvantGarde-Book", "URW Gothic L", "book", 0, 0, 4 },
+{"AvantGarde-BookOblique", "URW Gothic L", "book", 0, "oblique", 5 },
+{"AvantGarde-Demi", "URW Gothic L", "demi", 0, 0, 6 },
+{"AvantGarde-DemiOblique", "URW Gothic L", "demi", 0, "oblique", 7 },
+{"Bookman-Demi", "URW Bookman L", "demi", 0, 0, 10},
+{"Bookman-DemiItalic", "URW Bookman L", "demi", 0, "italic", 11},
+{"Bookman-Light", "URW Bookman L", "light", 0, 0, 8 },
+{"Bookman-LightItalic", "URW Bookman L", "light", 0, "italic", 9 },
+{"Courier", "Nimbus Mono L", "regular", 0, 0, 12},
+{"Courier-Bold", "Nimbus Mono L", "bold", 0, 0, 14},
+{"Courier-BoldOblique", "Nimbus Mono L", "bold", 0, "oblique", 15},
+{"Courier-Oblique", "Nimbus Mono L", "regular", 0, "oblique", 13},
+{"Helvetica", "Nimbus Sans L", "regular", 0, 0, 16},
+{"Helvetica-Bold", "Nimbus Sans L", "bold", 0, 0, 18},
+{"Helvetica-BoldOblique", "Nimbus Sans L", "bold", 0, "oblique", 19},
+{"Helvetica-Narrow", "Nimbus Sans L", "regular", "condensed", 0, 20},
+{"Helvetica-Narrow-Bold", "Nimbus Sans L", "bold", "condensed", 0, 22},
+{"Helvetica-Narrow-BoldOblique","Nimbus Sans L", "bold", "condensed", "oblique", 23},
+{"Helvetica-Narrow-Oblique", "Nimbus Sans L", "regular", "condensed", "oblique", 21},
+{"Helvetica-Oblique", "Nimbus Sans L", "regular", 0, "oblique", 17},
+{"NewCenturySchlbk-Bold", "Century Schoolbook L", "bold", 0, 0, 26},
+{"NewCenturySchlbk-BoldItalic", "Century Schoolbook L", "bold", 0, "italic", 27},
+{"NewCenturySchlbk-Italic", "Century Schoolbook L", 0, 0, "italic", 25},
+{"NewCenturySchlbk-Roman", "Century Schoolbook L", "roman", 0, 0, 24},
+{"Palatino-Bold", "URW Palladio L", "bold", 0, 0, 30},
+{"Palatino-BoldItalic", "URW Palladio L", "bold", 0, "italic", 31},
+{"Palatino-Italic", "URW Palladio L", 0, 0, "italic", 29},
+{"Palatino-Roman", "URW Palladio L", "roman", 0, 0, 28},
+{"Symbol", "Standard Symbols L", "regular", 0, 0, 32},
+{"Times-Bold", "Nimbus Roman No9 L", "medium", 0, 0, 2 },
+{"Times-BoldItalic", "Nimbus Roman No9 L", "medium", 0, "italic", 3 },
+{"Times-Italic", "Nimbus Roman No9 L", "regular", 0, "italic", 1 },
+{"Times-Roman", "Nimbus Roman No9 L", "regular", 0, 0, 0 },
+{"ZapfChancery-MediumItalic", "URW Chancery L", "medium", 0, "italic", 33},
+{"ZapfDingbats", "Dingbats", 0, 0, 0, 34},
}
}
-static void svggen_font(GVJ_t * job, char *fontname, double fontsize)
-{
- gvstyle_t *style = job->style;
- char buf[BUFSIZ];
-
- strcpy(buf, " style=\"");
- sprintf(buf + strlen(buf), "font-family:%s;", fontname);
- sprintf(buf + strlen(buf), "font-size:%.2f;", fontsize);
- switch (style->pencolor.type) {
- case COLOR_STRING:
- if (strcasecmp(style->pencolor.u.string, "black")) {
- sprintf(buf + strlen(buf), "fill:%s;",
- style->pencolor.u.string);
- }
- break;
- case RGBA_BYTE:
- sprintf(buf + strlen(buf), "fill:#%02x%02x%02x;",
- style->pencolor.u.rgba[0],
- style->pencolor.u.rgba[1], style->pencolor.u.rgba[2]);
- break;
- default:
- assert(0); /* internal error */
- }
- strcat(buf, "\"");
- svggen_fputs(job, buf);
-}
-
-
static void svggen_grstyle(GVJ_t * job, int filled)
{
gvstyle_t *style = job->style;
static void svggen_textpara(GVJ_t * job, pointf p, textpara_t * para)
{
- char *anchor;
+ gvstyle_t *penstyle = job->style;
+ svggen_fputs(job, "<text");
switch (para->just) {
case 'l':
- anchor = "start";
+ svggen_fputs(job, " text-anchor=\"start\"");
break;
case 'r':
- anchor = "end";
+ svggen_fputs(job, " text-anchor=\"end\"");
break;
default:
case 'n':
- anchor = "middle";
+ svggen_fputs(job, " text-anchor=\"middle\"");
break;
}
-
- svggen_printf(job, "<text text-anchor=\"%s\"", anchor);
svggen_printf(job, " x=\"%g\" y=\"%g\"", p.x, -p.y);
- svggen_font(job, para->translated_fontname, para->fontsize);
- svggen_fputs(job, ">");
+ svggen_fputs(job, " style=\"");
+ if (para->postscript_alias) {
+ svggen_printf(job, "font-family:%s;", para->postscript_alias->family);
+ if (para->postscript_alias->weight)
+ svggen_printf(job, "font-weight:%s;", para->postscript_alias->weight);
+ if (para->postscript_alias->stretch)
+ svggen_printf(job, "font-stretch:%s;", para->postscript_alias->stretch);
+ if (para->postscript_alias->style)
+ svggen_printf(job, "font-style:%s;", para->postscript_alias->style);
+ }
+ else {
+ svggen_printf(job, "font:%s;", para->fontname);
+ }
+ svggen_printf(job, "font-size:%.2f;", para->fontsize);
+ switch (penstyle->pencolor.type) {
+ case COLOR_STRING:
+ if (strcasecmp(penstyle->pencolor.u.string, "black"))
+ svggen_printf(job, "fill:%s;", penstyle->pencolor.u.string);
+ break;
+ case RGBA_BYTE:
+ svggen_printf(job, "fill:#%02x%02x%02x;",
+ penstyle->pencolor.u.rgba[0],
+ penstyle->pencolor.u.rgba[1], penstyle->pencolor.u.rgba[2]);
+ break;
+ default:
+ assert(0); /* internal error */
+ }
+ svggen_fputs(job, "\">");
svggen_fputs(job, xml_string(para->str));
svggen_fputs(job, "</text>\n");
}