poppler: use new PDF version methods
[swftools.git] / lib / pdf / pdf.cc
index 9324a91..f04c396 100644 (file)
@@ -4,7 +4,12 @@
 #include "../gfxsource.h"
 #include "../devices/rescale.h"
 #include "../log.h"
-#include "config.h"
+#include "../../config.h"
+#ifdef HAVE_POPPLER
+  #include <poppler-config.h>
+#else
+  #include "xpdf/config.h"
+#endif
 #include "GlobalParams.h"
 #include "InfoOutputDev.h"
 #include "GFXOutputDev.h"
@@ -186,6 +191,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 +205,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;
@@ -347,7 +360,11 @@ char* pdf_doc_getinfo(gfxdocument_t*doc, const char*name)
     else if(!strcmp(name, "oktoaddnotes")) return strdup(i->doc->okToAddNotes() ? "yes" : "no");
     else if(!strcmp(name, "version")) { 
         char buf[32];
+#ifdef HAVE_POPPLER
+        sprintf(buf, "%d.%d", i->doc->getPDFMajorVersion(), i->doc->getPDFMinorVersion());
+#else
         sprintf(buf, "%.1f", i->doc->getPDFVersion());
+#endif
         return strdup(buf);
     }
     return strdup("");