1 //========================================================================
5 // Copyright 1998 Derek B. Noonburg
7 //========================================================================
13 #include "parseargs.h"
24 #include "ImageOutputDev.h"
29 static int firstPage = 1;
30 static int lastPage = 0;
31 static GBool dumpJPEG = gFalse;
32 static char userPassword[33] = "";
33 static GBool printVersion = gFalse;
34 static GBool printHelp = gFalse;
36 static ArgDesc argDesc[] = {
37 {"-f", argInt, &firstPage, 0,
38 "first page to convert"},
39 {"-l", argInt, &lastPage, 0,
40 "last page to convert"},
41 {"-j", argFlag, &dumpJPEG, 0,
42 "write JPEG images as JPEG files"},
43 {"-upw", argString, userPassword, sizeof(userPassword),
44 "user password (for encrypted files)"},
45 {"-q", argFlag, &errQuiet, 0,
46 "don't print any messages or errors"},
47 {"-v", argFlag, &printVersion, 0,
48 "print copyright and version info"},
49 {"-h", argFlag, &printHelp, 0,
50 "print usage information"},
51 {"-help", argFlag, &printHelp, 0,
52 "print usage information"},
56 int main(int argc, char *argv[]) {
61 ImageOutputDev *imgOut;
65 ok = parseArgs(argDesc, &argc, argv);
66 if (!ok || argc != 3 || printVersion || printHelp) {
67 fprintf(stderr, "pdfimages version %s\n", xpdfVersion);
68 fprintf(stderr, "%s\n", xpdfCopyright);
70 printUsage("pdfimages", "<PDF-file> <image-root>", argDesc);
74 fileName = new GString(argv[1]);
81 initParams(xpdfConfigFile);
85 if (userPassword[0]) {
86 userPW = new GString(userPassword);
90 doc = new PDFDoc(fileName, userPW);
98 // check for copy permission
99 if (!doc->okToCopy()) {
100 error(-1, "Copying of images from this document is not allowed.");
107 if (lastPage < 1 || lastPage > doc->getNumPages())
108 lastPage = doc->getNumPages();
111 imgOut = new ImageOutputDev(imgRoot, dumpJPEG);
113 doc->displayPages(imgOut, firstPage, lastPage, 72, 0, gFalse);
121 // check for memory leaks
122 Object::memCheck(stderr);