X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2Fswfoutput.cc;h=18e86d9558fdba6173898eb01656f6b9176ad44b;hb=62a84339b34262897d9e0000e7cf77af450aeffa;hp=ccc4c1b9ab428e4f82c31432da69bbf2d11774ad;hpb=af8c85b9336c4a64f75499e7546557fbfe3e9cf9;p=swftools.git diff --git a/pdf2swf/swfoutput.cc b/pdf2swf/swfoutput.cc index ccc4c1b..18e86d9 100644 --- a/pdf2swf/swfoutput.cc +++ b/pdf2swf/swfoutput.cc @@ -27,11 +27,14 @@ extern "C" { #include "../lib/log.h" #include "../lib/rfxswf.h" } +#define standardEncodingSize 335 +extern char *standardEncodingNames[standardEncodingSize]; int opennewwindow=0; int ignoredraworder=0; int drawonlyshapes=0; int jpegquality=85; +int storeallcharacters=0; static int flag_protected = 0; typedef unsigned char u8; @@ -516,6 +519,7 @@ SWFFont::SWFFont(char*name, int id, char*filename) outline = (T1_OUTLINE**)malloc(t*sizeof(T1_OUTLINE*)); charname = (char**)malloc(t*sizeof(char*)); + memset(charname, t*sizeof(char*), 0); used = (char*)malloc(t*sizeof(char)); char2swfcharid = (U16*)malloc(t*2); swfcharid2char = (U16*)malloc(t*2); @@ -562,7 +566,19 @@ SWFFont::SWFFont(char*name, int id, char*filename) SWFFont::~SWFFont() { int t,usednum=0; - int*ptr = (int*)malloc(swfcharpos*sizeof(int)); + int*ptr; + + if(storeallcharacters) + { + int t; + for(t=0;tcharnum;t++) + { + if(this->charname[t]) + getSWFCharID(this->charname[t]); + } + } + + ptr = (int*)malloc(swfcharpos*sizeof(int)); for(t=0;tswfid); + if(this->fontid) { + swf_SetU8(ftag, strlen(this->fontid)); + swf_SetBlock(ftag, (U8*)this->fontid, strlen(this->fontid)); + } else { + swf_SetU8(ftag, 0); + } + swf_SetU8(ftag, 0); //flags + for(t=0;tcharname[this->swfcharid2char[t]]; + for(s=0;s<256;s++) { + if(standardEncodingNames[s] && + !strcmp(name,standardEncodingNames[s])) + break; + } + swf_SetU8(ftag, (U8)s); + } } free(ptr); @@ -1032,7 +1069,7 @@ void swfoutput_linktourl(struct swfoutput*obj, char*url, swfcoord*points) if(textid>=0) endtext(); - actions = swf_ActionStart(tag); + actions = swf_ActionStart(); if(opennewwindow) action_GetUrl(url, "_parent"); else @@ -1051,7 +1088,7 @@ void swfoutput_linktopage(struct swfoutput*obj, int page, swfcoord*points) if(textid>=0) endtext(); - actions = swf_ActionStart(tag); + actions = swf_ActionStart(); action_GotoFrame(page); action_End(); swf_ActionEnd(); @@ -1074,10 +1111,10 @@ void drawlink(struct swfoutput*obj, ActionTAG*actions, swfcoord*points) int buttonid = ++currentswfid; for(t=1;t<4;t++) { - if(points[t].x>xmax) xmax=points[t].x; - if(points[t].y>ymax) ymax=points[t].y; - if(points[t].xxmax) xmax=points[t].x; + if(points[t].y>ymax) ymax=points[t].y; + if(points[t].x