diff options
author | Arturo Espinosa <unammx@src.gnome.org> | 1999-04-17 02:59:58 (GMT) |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1999-04-17 02:59:58 (GMT) |
commit | d9f9a6449f377b4c933b75d57541b19c6d088994 (patch) | |
tree | 04f7f0c54447ef792fbf83bc5039174f4681b3bb /pdf/xpdf/pdfimages.cc |
Initial revision
Diffstat (limited to 'pdf/xpdf/pdfimages.cc')
-rw-r--r-- | pdf/xpdf/pdfimages.cc | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/pdf/xpdf/pdfimages.cc b/pdf/xpdf/pdfimages.cc new file mode 100644 index 0000000..1825a26 --- /dev/null +++ b/pdf/xpdf/pdfimages.cc @@ -0,0 +1,100 @@ +//======================================================================== +// +// pdfimages.cc +// +// Copyright 1998 Derek B. Noonburg +// +//======================================================================== + +#include <stdio.h> +#include <stdlib.h> +#include <stddef.h> +#include <string.h> +#include "parseargs.h" +#include "GString.h" +#include "gmem.h" +#include "Object.h" +#include "Stream.h" +#include "Array.h" +#include "Dict.h" +#include "XRef.h" +#include "Catalog.h" +#include "Page.h" +#include "PDFDoc.h" +#include "ImageOutputDev.h" +#include "Params.h" +#include "Error.h" +#include "config.h" + +static int firstPage = 1; +static int lastPage = 0; +static GBool dumpJPEG = gFalse; +GBool printCommands = gFalse; +static GBool printHelp = gFalse; + +static ArgDesc argDesc[] = { + {"-f", argInt, &firstPage, 0, + "first page to convert"}, + {"-l", argInt, &lastPage, 0, + "last page to convert"}, + {"-j", argFlag, &dumpJPEG, 0, + "write JPEG images as JPEG files"}, + {"-h", argFlag, &printHelp, 0, + "print usage information"}, + {"-help", argFlag, &printHelp, 0, + "print usage information"}, + {NULL} +}; + +int main(int argc, char *argv[]) { + PDFDoc *doc; + GString *fileName; + char *imgRoot; + ImageOutputDev *imgOut; + GBool ok; + + // parse args + ok = parseArgs(argDesc, &argc, argv); + if (!ok || argc != 3 || printHelp) { + fprintf(stderr, "pdfimages version %s\n", xpdfVersion); + fprintf(stderr, "%s\n", xpdfCopyright); + printUsage("pdfimages", "<PDF-file> <image-root>", argDesc); + exit(1); + } + fileName = new GString(argv[1]); + imgRoot = argv[2]; + + // init error file + errorInit(); + + // read config file + initParams(xpdfConfigFile); + + // open PDF file + xref = NULL; + doc = new PDFDoc(fileName); + if (!doc->isOk()) + exit(1); + + // get page range + if (firstPage < 1) + firstPage = 1; + if (lastPage < 1 || lastPage > doc->getNumPages()) + lastPage = doc->getNumPages(); + + // write image files + imgOut = new ImageOutputDev(imgRoot, dumpJPEG); + if (imgOut->isOk()) + doc->displayPages(imgOut, firstPage, lastPage, 72, 0); + delete imgOut; + + // clean up + delete doc; + freeParams(); + + // check for memory leaks + Object::memCheck(errFile); + gMemReport(errFile); + + return 0; +} |