X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2Fpdfimages.cc;h=cd218ff71e4ba812f9513a9db91d146f8f45dda0;hb=7aac8dc8533347e21311b15186e0af82f1b22fd6;hp=3742249613ff95e030c683a3b87ba808d70f2079;hpb=bf3b381529f5388bd1bda8ed8fafb247a7b8a9fc;p=evince.git diff --git a/pdf/xpdf/pdfimages.cc b/pdf/xpdf/pdfimages.cc index 37422496..cd218ff7 100644 --- a/pdf/xpdf/pdfimages.cc +++ b/pdf/xpdf/pdfimages.cc @@ -29,7 +29,8 @@ static int firstPage = 1; static int lastPage = 0; static GBool dumpJPEG = gFalse; -GBool printCommands = gFalse; +static char userPassword[33] = ""; +static GBool printVersion = gFalse; static GBool printHelp = gFalse; static ArgDesc argDesc[] = { @@ -39,8 +40,12 @@ static ArgDesc argDesc[] = { "last page to convert"}, {"-j", argFlag, &dumpJPEG, 0, "write JPEG images as JPEG files"}, + {"-upw", argString, userPassword, sizeof(userPassword), + "user password (for encrypted files)"}, {"-q", argFlag, &errQuiet, 0, "don't print any messages or errors"}, + {"-v", argFlag, &printVersion, 0, + "print copyright and version info"}, {"-h", argFlag, &printHelp, 0, "print usage information"}, {"-help", argFlag, &printHelp, 0, @@ -52,15 +57,18 @@ int main(int argc, char *argv[]) { PDFDoc *doc; GString *fileName; char *imgRoot; + GString *userPW; ImageOutputDev *imgOut; GBool ok; // parse args ok = parseArgs(argDesc, &argc, argv); - if (!ok || argc != 3 || printHelp) { + if (!ok || argc != 3 || printVersion || printHelp) { fprintf(stderr, "pdfimages version %s\n", xpdfVersion); fprintf(stderr, "%s\n", xpdfCopyright); - printUsage("pdfimages", " ", argDesc); + if (!printVersion) { + printUsage("pdfimages", " ", argDesc); + } exit(1); } fileName = new GString(argv[1]); @@ -72,17 +80,25 @@ int main(int argc, char *argv[]) { // read config file initParams(xpdfConfigFile); - // open PDF fihe + // open PDF file xref = NULL; - doc = new PDFDoc(new FileStream(fileOpen(fileName)), fileName); + if (userPassword[0]) { + userPW = new GString(userPassword); + } else { + userPW = NULL; + } + doc = new PDFDoc(fileName, userPW); + if (userPW) { + delete userPW; + } if (!doc->isOk()) { - goto err1; + goto err; } // check for copy permission if (!doc->okToCopy()) { error(-1, "Copying of images from this document is not allowed."); - goto err2; + goto err; } // get page range @@ -94,13 +110,12 @@ int main(int argc, char *argv[]) { // write image files imgOut = new ImageOutputDev(imgRoot, dumpJPEG); if (imgOut->isOk()) - doc->displayPages(imgOut, firstPage, lastPage, 72, 0); + doc->displayPages(imgOut, firstPage, lastPage, 72, 0, gFalse); delete imgOut; // clean up - err2: + err: delete doc; - err1: freeParams(); // check for memory leaks