X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=pdf2swf%2FSWFOutputDev.cc;h=5186af38a9964f6f3894fc8cfb0515ff33e8a659;hb=730ba2bc226764b0273d43960924a17650d277b7;hp=59ba4c5d9d10d22bcbfd757ef82ca7da89ddd8a7;hpb=4921239e27afd7a74bbcd183648761608be223c1;p=swftools.git diff --git a/pdf2swf/SWFOutputDev.cc b/pdf2swf/SWFOutputDev.cc index 59ba4c5..5186af3 100644 --- a/pdf2swf/SWFOutputDev.cc +++ b/pdf2swf/SWFOutputDev.cc @@ -1916,6 +1916,8 @@ void pdfswf_setparameter(char*name, char*value) zoom = atoi(value); } else if(!strcmp(name, "fontdir")) { pdfswf_addfontdir(value); + } else if(!strcmp(name, "languagedir")) { + pdfswf_addlanguagedir(value); } else { swfoutput_setparameter(name, value); } @@ -1932,9 +1934,42 @@ void pdfswf_addfont(char*filename) } } +static char* dirseparator() +{ +#ifdef WIN32 + return "\\"; +#else + return "/"; +#endif +} + +void pdfswf_addlanguagedir(char*dir) +{ + if(!globalParams) + globalParams = new GlobalParams(""); + + msg(" Adding %s to language pack directories", dir); + + int l; + FILE*fi = 0; + char* config_file = (char*)malloc(strlen(dir)+256); + strcpy(config_file, dir); + strcat(config_file, dirseparator()); + strcat(config_file, "add-to-xpdfrc"); + + fi = fopen(config_file, "rb"); + if(!fi) { + msg(" Could not open %s"); + return; + } + globalParams->parseFile(new GString(config_file), fi); + fclose(fi); +} + void pdfswf_addfontdir(char*dirname) { #ifdef HAVE_DIRENT_H + msg(" Adding %s to font directories", dirname); DIR*dir = opendir(dirname); if(!dir) { msg(" Couldn't open directory %s\n", dirname); @@ -1962,13 +1997,9 @@ void pdfswf_addfontdir(char*dirname) { char*fontname = (char*)malloc(strlen(dirname)+strlen(name)+2); strcpy(fontname, dirname); -#ifdef WIN32 - strcat(fontname, "\\"); -#else - strcat(fontname, "/"); -#endif + strcat(fontname, dirseparator()); strcat(fontname, name); - msg(" Adding %s to fonts", fontname); + msg(" Adding %s to fonts", fontname); pdfswf_addfont(fontname); } } @@ -2005,7 +2036,8 @@ pdf_doc_t* pdf_init(char*filename, char*userPassword) Object info; // read config file - globalParams = new GlobalParams(""); + if(!globalParams) + globalParams = new GlobalParams(""); // open PDF file if (userPassword && userPassword[0]) { @@ -2082,7 +2114,7 @@ class MemCheck { public: ~MemCheck() { - delete globalParams; + delete globalParams;globalParams=0; Object::memCheck(stderr); gMemReport(stderr); }