m11 *= state->getHorizScaling();
m21 *= state->getHorizScaling();
swfoutput_setfontmatrix(&output, m11, -m21, m12, -m22);
+
+ msg("<debug> fontmatrix %7.3f %7.3f\n", m11,-m21);
+ msg("<debug> fontmatrix %7.3f %7.3f\n", m12,-m22);
}
void SWFOutputDev::drawChar(GfxState *state, double x, double y,
msg("<debug> drawChar(%f,%f,c='%c' (%d),u=%d <%d>) CID=%d name=\"%s\"\n",x,y,(c&127)>=32?c:'?',c,u, uLen, font->isCIDFont(), FIXNULL(name));
+ x1 = (int)(x1+0.5);
+ y1 = (int)(y1+0.5);
+
int ret = swfoutput_drawchar(&output, x1, y1, name, c, u);
}
}
// look for Type 3 font
- if (!type3Warning && gfxFont->getType() == fontType3) {
- type3Warning = gTrue;
- showFontError(gfxFont, 2);
+ if (gfxFont->getType() == fontType3) {
+ if(!type3Warning) {
+ type3Warning = gTrue;
+ showFontError(gfxFont, 2);
+ }
+ return;
}
/* now either load the font, or find a substitution */
}
if(!fileName) {
char * fontname = getFontName(gfxFont);
- msg("<warning> Font %s could not be loaded.", fontname);
+ msg("<warning> Font %s %scould not be loaded.", fontname, embedded?"":"(not embedded) ");
msg("<warning> Try putting a TTF version of that font (named \"%s.ttf\") into /swftools/fonts", fontname);
fileName = substituteFont(gfxFont, fontid);
}
void pdfswf_setparameter(char*name, char*value)
{
- if(!strcmp(name, "drawonlyshapes")) {
- drawonlyshapes = atoi(value);
- } else if(!strcmp(name, "ignoredraworder")) {
- ignoredraworder = atoi(value);
- } else if(!strcmp(name, "linksopennewwindow")) {
- opennewwindow = atoi(value);
- } else if(!strcmp(name, "storeallcharacters")) {
- storeallcharacters = atoi(value);
- } else if(!strcmp(name, "enablezlib")) {
- enablezlib = atoi(value);
- } else if(!strcmp(name, "insertstop")) {
- insertstoptag = atoi(value);
- } else if(!strcmp(name, "flashversion")) {
- flashversion = atoi(value);
- } else if(!strcmp(name, "jpegquality")) {
- int val = atoi(value);
- if(val<0) val=0;
- if(val>100) val=100;
- jpegquality = val;
- } else if(!strcmp(name, "outputfilename")) {
+ if(!strcmp(name, "outputfilename")) {
swffilename = value;
} else if(!strcmp(name, "caplinewidth")) {
caplinewidth = atof(value);
- } else if(!strcmp(name, "splinequality")) {
- int v = atoi(value);
- v = 500-(v*5); // 100% = 0.25 pixel, 0% = 25 pixel
- if(v<1) v = 1;
- splinemaxerror = v;
- } else if(!strcmp(name, "fontquality")) {
- int v = atoi(value);
- v = 500-(v*5); // 100% = 0.25 pixel, 0% = 25 pixel
- if(v<1) v = 1;
- fontsplinemaxerror = v;
} else {
- fprintf(stderr, "unknown parameter: %s (=%s)\n", name, value);
+ swfoutput_setparameter(name, value);
}
}
fonts[fontnum++] = f;
}
-void pdfswf_drawonlyshapes()
-{
- drawonlyshapes = 1;
-}
-
-void pdfswf_ignoredraworder()
-{
- ignoredraworder = 1;
-}
-
-void pdfswf_linksopennewwindow()
-{
- opennewwindow = 1;
-}
-
-void pdfswf_storeallcharacters()
-{
- storeallcharacters = 1;
-}
-
-void pdfswf_enablezlib()
-{
- enablezlib = 1;
-}
-
-void pdfswf_jpegquality(int val)
-{
- if(val<0) val=0;
- if(val>100) val=100;
- jpegquality = val;
-}
-
-void pdfswf_setoutputfilename(char*_filename)
-{
- swffilename = _filename;
+/* TODO: get rid of this */
+void pdfswf_drawonlyshapes() { pdfswf_setparameter("drawonlyshapes", "1"); }
+void pdfswf_ignoredraworder() { pdfswf_setparameter("ignoredraworder", "1"); }
+void pdfswf_linksopennewwindow() { pdfswf_setparameter("opennewwindow", "1"); }
+void pdfswf_storeallcharacters() { pdfswf_setparameter("storeallcharacters", "1"); }
+void pdfswf_enablezlib() { pdfswf_setparameter("enablezlib", "1"); }
+void pdfswf_setoutputfilename(char*_filename) { swffilename = _filename; }
+void pdfswf_insertstop() { pdfswf_setparameter("insertstoptag", "1"); }
+void pdfswf_jpegquality(int val) {
+ char tmp[32];
+ sprintf(tmp, "%d", val);
+ pdfswf_setparameter("jpegquality", tmp);
}
-
-void pdfswf_insertstop()
-{
- insertstoptag = 1;
+void pdfswf_setversion(int n) {
+ char tmp[32];
+ sprintf(tmp, "%d", n);
+ pdfswf_setparameter("flashversion", tmp);
}
-void pdfswf_setversion(int n)
-{
- flashversion = n;
-}
void pdfswf_convertpage(int page)
doc->displayPage((OutputDev*)output, currentpage, /*dpi*/72, /*rotate*/0, /*doLinks*/(int)1);
}
}
-
int pdfswf_numpages()
{
return doc->getNumPages();