#include "GfxFont.h"
#include "CharCodeToUnicode.h"
#include "NameToUnicodeTable.h"
-#include "FontFile.h"
#include "GlobalParams.h"
+//#define XPDF_101
+#ifdef XPDF_101
+#include "FontFile.h"
+#else
+#include "FoFiType1C.h"
+#include "FoFiTrueType.h"
+#endif
+#include "SWFOutputDev.h"
+
//swftools header files
#include "swfoutput.h"
-#include "SWFOutputDev.h"
#include "../lib/log.h"
#include <math.h>
static int pagepos = 0;
static double caplinewidth = 3.0;
+static int zoom = 72; /* xpdf: 86 */
static void printInfoString(Dict *infoDict, char *key, char *fmt);
static void printInfoDate(Dict *infoDict, char *key, char *fmt);
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,
x1 = x;
y1 = y;
state->transform(x, y, &x1, &y1);
-
+
Unicode u=0;
if(_u)
u = *_u;
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);
-
+ /*x1 = (int)(x1+0.5);
+ y1 = (int)(y1+0.5);*/
+
int ret = swfoutput_drawchar(&output, x1, y1, name, c, u);
}
swfcoord points[5];
int x, y;
+#ifdef XPDF_101
link->getBorder(&x1, &y1, &x2, &y2, &w);
+#else
+ link->getRect(&x1, &y1, &x2, &y2);
+#endif
// if (w > 0)
{
rgb.r = 0;
(char)(rgb.b*255), (char)(opaq*255));
}
+void FoFiWrite(void *stream, char *data, int len)
+{
+ fwrite(data, len, 1, (FILE*)stream);
+}
+
char*SWFOutputDev::writeEmbeddedFontToFile(XRef*ref, GfxFont*font)
{
char*tmpFileName = NULL;
msg("<error> Couldn't read embedded font file");
return 0;
}
+#ifdef XPDF_101
Type1CFontFile *cvt = new Type1CFontFile(fontBuf, fontLen);
cvt->convertToType1(f);
+#else
+ FoFiType1C *cvt = FoFiType1C::make(fontBuf, fontLen);
+ cvt->convertToType1(NULL, gTrue, FoFiWrite, f);
+#endif
//cvt->convertToCIDType0("test", f);
//cvt->convertToType0("test", f);
delete cvt;
msg("<error> Couldn't read embedded font file");
return 0;
}
+#ifdef XPDF_101
TrueTypeFontFile *cvt = new TrueTypeFontFile(fontBuf, fontLen);
cvt->writeTTF(f);
+#else
+ FoFiTrueType *cvt = FoFiTrueType::make(fontBuf, fontLen);
+ cvt->writeTTF(FoFiWrite, f);
+#endif
delete cvt;
gfree(fontBuf);
} else {
swffilename = value;
} else if(!strcmp(name, "caplinewidth")) {
caplinewidth = atof(value);
+ } else if(!strcmp(name, "zoom")) {
+ zoom = atoi(value);
} else {
swfoutput_setparameter(name, value);
}
fonts[fontnum++] = f;
}
-/* 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_setversion(int n) {
- char tmp[32];
- sprintf(tmp, "%d", n);
- pdfswf_setparameter("flashversion", tmp);
-}
-
-
void pdfswf_convertpage(int page)
{
for(t=0;t<pagepos;t++)
{
currentpage = pages[t];
- doc->displayPage((OutputDev*)output, currentpage, /*dpi*/72, /*rotate*/0, /*doLinks*/(int)1);
+#ifdef XPDF_101
+ doc->displayPage((OutputDev*)output, currentpage, /*zoom*/zoom, /*rotate*/0, /*doLinks*/(int)1);
+#else
+ doc->displayPage((OutputDev*)output, currentpage, zoom, zoom, /*rotate*/0, true, /*doLinks*/(int)1);
+#endif
}
}
int pdfswf_numpages()