X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2FSWFOutputDev.cc;h=eb12157edc1e0e71895a8a66eecfe0ba33bd8c78;hb=cabd1ffdcf5cffd42fba19c15bdbd93adb55a0c7;hp=5ae25d42f5d6f54f8a972720ddde9db7a6405125;hpb=bf1bc6845e0a56e0ad1aea85ebea58cb0ce8b5fb;p=swftools.git diff --git a/pdf2swf/SWFOutputDev.cc b/pdf2swf/SWFOutputDev.cc index 5ae25d4..eb12157 100644 --- a/pdf2swf/SWFOutputDev.cc +++ b/pdf2swf/SWFOutputDev.cc @@ -645,6 +645,9 @@ void SWFOutputDev::beginString(GfxState *state, GString *s) m11 *= state->getHorizScaling(); m21 *= state->getHorizScaling(); swfoutput_setfontmatrix(&output, m11, -m21, m12, -m22); + + msg(" fontmatrix %7.3f %7.3f\n", m11,-m21); + msg(" fontmatrix %7.3f %7.3f\n", m12,-m22); } void SWFOutputDev::drawChar(GfxState *state, double x, double y, @@ -693,6 +696,9 @@ void SWFOutputDev::drawChar(GfxState *state, double x, double y, msg(" 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); } @@ -1175,9 +1181,12 @@ void SWFOutputDev::updateFont(GfxState *state) } // 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 */ @@ -1205,7 +1214,7 @@ void SWFOutputDev::updateFont(GfxState *state) } if(!fileName) { char * fontname = getFontName(gfxFont); - msg(" Font %s could not be loaded.", fontname); + msg(" Font %s %scould not be loaded.", fontname, embedded?"":"(not embedded) "); msg(" Try putting a TTF version of that font (named \"%s.ttf\") into /swftools/fonts", fontname); fileName = substituteFont(gfxFont, fontid); } @@ -1665,41 +1674,12 @@ void pdfswf_init(char*filename, char*userPassword) 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); } } @@ -1711,52 +1691,25 @@ void pdfswf_addfont(char*filename) 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) @@ -1784,7 +1737,6 @@ void pdfswf_performconversion() doc->displayPage((OutputDev*)output, currentpage, /*dpi*/72, /*rotate*/0, /*doLinks*/(int)1); } } - int pdfswf_numpages() { return doc->getNumPages();