/* config */
static double caplinewidth = 3.0;
static int zoom = 72; /* xpdf: 86 */
+static int forceType0Fonts = 0;
static void printInfoString(Dict *infoDict, char *key, char *fmt);
static void printInfoDate(Dict *infoDict, char *key, char *fmt);
void setClip(int x1,int y1,int x2,int y2);
int save(char*filename);
+ void pagefeed();
+ void* getSWF();
void getDimensions(int*x1,int*y1,int*x2,int*y2);
}
void SWFOutputDev::getDimensions(int*x1,int*y1,int*x2,int*y2)
{
- if(x1) *x1 = output.swf.movieSize.xmin/20;
- if(y1) *y1 = output.swf.movieSize.ymin/20;
- if(x2) *x2 = output.swf.movieSize.xmax/20;
- if(y2) *y2 = output.swf.movieSize.ymax/20;
+ return swfoutput_getdimensions(&output, x1,y1,x2,y2);
}
static char*getFontID(GfxFont*font)
clipping[clippos] ++;
free_outline(outline);
}
+
+/* pass through functions for swf_output */
int SWFOutputDev::save(char*filename)
{
return swfoutput_save(&output, filename);
}
+void SWFOutputDev::pagefeed()
+{
+ swfoutput_pagefeed(&output);
+}
+void* SWFOutputDev::getSWF()
+{
+ return (void*)swfoutput_get(&output);
+}
SWFOutputDev::~SWFOutputDev()
{
/* apply user clip box */
if(user_clipx1|user_clipy1|user_clipx2|user_clipy2) {
- if(user_clipx1 > x1) x1 = user_clipx1;
- if(user_clipx2 < x2) x2 = user_clipx2;
- if(user_clipy1 > y1) y1 = user_clipy1;
- if(user_clipy2 < y2) y2 = user_clipy2;
+ /*if(user_clipx1 > x1)*/ x1 = user_clipx1;
+ /*if(user_clipx2 < x2)*/ x2 = user_clipx2;
+ /*if(user_clipy1 > y1)*/ y1 = user_clipy1;
+ /*if(user_clipy2 < y2)*/ y2 = user_clipy2;
}
if(!outputstarted) {
}
#ifdef XPDF_101
Type1CFontFile *cvt = new Type1CFontFile(fontBuf, fontLen);
+ if(!cvt) return 0;
cvt->convertToType1(f);
#else
FoFiType1C *cvt = FoFiType1C::make(fontBuf, fontLen);
+ if(!cvt) return 0;
cvt->convertToType1(NULL, gTrue, FoFiWrite, f);
#endif
//cvt->convertToCIDType0("test", f);
fontname = "Times-Roman";
}
filename = searchFont(fontname);
+ if(!filename) {
+ msg("<error> Couldn't find font %s- did you install the default fonts?");
+ return 0;
+ }
if(substitutepos>=sizeof(substitutesource)/sizeof(char*)) {
msg("<fatal> Too many fonts in file.");
if(embedded &&
(gfxFont->getType() == fontType1 ||
gfxFont->getType() == fontType1C ||
- //gfxFont->getType() == fontCIDType0C ||
+ (gfxFont->getType() == fontCIDType0C && forceType0Fonts) ||
gfxFont->getType() == fontTrueType ||
gfxFont->getType() == fontCIDType2
))
caplinewidth = atof(value);
} else if(!strcmp(name, "zoom")) {
zoom = atoi(value);
+ } else if(!strcmp(name, "forceType0Fonts")) {
+ forceType0Fonts = atoi(value);
} else if(!strcmp(name, "fontdir")) {
pdfswf_addfontdir(value);
} else if(!strcmp(name, "languagedir")) {
pdfswf_setparameter(name, value);
}
+void swf_output_pagefeed(swf_output_t*swf)
+{
+ swf_output_internal_t*i= (swf_output_internal_t*)swf->internal;
+ i->outputDev->pagefeed();
+ i->outputDev->getDimensions(&swf->x1, &swf->y1, &swf->x2, &swf->y2);
+}
+
int swf_output_save(swf_output_t*swf, char*filename)
{
swf_output_internal_t*i= (swf_output_internal_t*)swf->internal;
return ret;
}
+void* swf_output_get(swf_output_t*swf)
+{
+ swf_output_internal_t*i= (swf_output_internal_t*)swf->internal;
+ void* ret = i->outputDev->getSWF();
+ i->outputDev->getDimensions(&swf->x1, &swf->y1, &swf->x2, &swf->y2);
+ return ret;
+}
+
void swf_output_destroy(swf_output_t*output)
{
swf_output_internal_t*i = (swf_output_internal_t*)output->internal;