X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=lib%2Fpdf%2Fpdf.cc;h=f148424a9fc3455cd9400efcb4362dd5d9762dcf;hp=e6bfe14c773a00f96336be774d89d891d58aa0d6;hb=f32de5188d6ec5a3b70ced18669e27e0b250bf50;hpb=6c8f037f0f76ce4b28b80a2133e4150d93012ef7 diff --git a/lib/pdf/pdf.cc b/lib/pdf/pdf.cc index e6bfe14..f148424 100644 --- a/lib/pdf/pdf.cc +++ b/lib/pdf/pdf.cc @@ -186,6 +186,10 @@ void pdf_doc_destroy(gfxdocument_t*gfx) delete i->doc; i->doc=0; free(i->pages); i->pages = 0; + + if(i->pagemap) { + free(i->pagemap); + } i->docinfo.free(); @@ -196,6 +200,10 @@ void pdf_doc_destroy(gfxdocument_t*gfx) if(i->info) { delete i->info;i->info=0; } + if(i->parameters) { + gfxparams_free(i->parameters); + i->parameters=0; + } free(gfx->internal);gfx->internal=0; free(gfx);gfx=0; @@ -368,6 +376,9 @@ static void pdf_setparameter(gfxsource_t*src, const char*name, const char*value) msg(" setting parameter %s to \"%s\"", name, value); if(!strncmp(name, "fontdir", strlen("fontdir"))) { addGlobalFontDir(value); + } else if(!strcmp(name, "addspacechars")) { + config_addspace = atoi(value); + gfxparams_store(i->parameters, "detectspaces", "0"); } else if(!strcmp(name, "detectspaces")) { config_addspace = atoi(value); } else if(!strcmp(name, "fontquality")) { @@ -442,7 +453,6 @@ static gfxdocument_t*pdf_open(gfxsource_t*src, const char*filename) delete userPW; } if (!i->doc->isOk()) { - printf("xpdf reports document as broken.\n"); return 0; } @@ -497,9 +507,15 @@ static gfxdocument_t*pdf_open(gfxsource_t*src, const char*filename) pdf_doc->getinfo = pdf_doc_getinfo; pdf_doc->getpage = pdf_doc_getpage; pdf_doc->prepare = pdf_doc_prepare; + + /* pass global parameters to PDF driver*/ + gfxparam_t*p = isrc->parameters->params; + while(p) { + pdf_doc->setparameter(pdf_doc, p->key, p->value); + p = p->next; + } return pdf_doc; - } void pdf_destroy(gfxsource_t*src)