diff options
author | Adrian Johnson <ajohnson@redneon.com> | 2012-02-13 22:05:18 +1030 |
---|---|---|
committer | Adrian Johnson <ajohnson@redneon.com> | 2012-02-18 09:51:27 +1030 |
commit | 521d3740e9b7d2cfacf29f089a4a8f6c962de807 (patch) | |
tree | cafd24716ecadbd1f76e860ad237ef67cb36ef35 /utils/pdfimages.cc | |
parent | 119b6b752314c9b13440eddf5bd1d5cef2966e80 (diff) |
pdfimages: add -list option to list all images
Bug 46066
Diffstat (limited to 'utils/pdfimages.cc')
-rw-r--r-- | utils/pdfimages.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/utils/pdfimages.cc b/utils/pdfimages.cc index 2383b6b9..fdbd64d5 100644 --- a/utils/pdfimages.cc +++ b/utils/pdfimages.cc @@ -48,6 +48,7 @@ static int firstPage = 1; static int lastPage = 0; +static GBool listImages = gFalse; static GBool dumpJPEG = gFalse; static GBool pageNames = gFalse; static char ownerPassword[33] = "\001"; @@ -63,6 +64,8 @@ static const ArgDesc argDesc[] = { "last page to convert"}, {"-j", argFlag, &dumpJPEG, 0, "write JPEG images as JPEG files"}, + {"-list", argFlag, &listImages, 0, + "print list of images instead of saving"}, {"-opw", argString, ownerPassword, sizeof(ownerPassword), "owner password (for encrypted files)"}, {"-upw", argString, userPassword, sizeof(userPassword), @@ -87,7 +90,7 @@ static const ArgDesc argDesc[] = { int main(int argc, char *argv[]) { PDFDoc *doc; GooString *fileName; - char *imgRoot; + char *imgRoot = NULL; GooString *ownerPW, *userPW; ImageOutputDev *imgOut; GBool ok; @@ -97,7 +100,7 @@ int main(int argc, char *argv[]) { // parse args ok = parseArgs(argDesc, &argc, argv); - if (!ok || argc != 3 || printVersion || printHelp) { + if (!ok || (listImages && argc != 2) || (!listImages && argc != 3) || printVersion || printHelp) { fprintf(stderr, "pdfimages version %s\n", PACKAGE_VERSION); fprintf(stderr, "%s\n", popplerCopyright); fprintf(stderr, "%s\n", xpdfCopyright); @@ -109,7 +112,8 @@ int main(int argc, char *argv[]) { goto err0; } fileName = new GooString(argv[1]); - imgRoot = argv[2]; + if (!listImages) + imgRoot = argv[2]; // read config file globalParams = new GlobalParams(); @@ -163,7 +167,7 @@ int main(int argc, char *argv[]) { lastPage = doc->getNumPages(); // write image files - imgOut = new ImageOutputDev(imgRoot, pageNames, dumpJPEG); + imgOut = new ImageOutputDev(imgRoot, pageNames, dumpJPEG, listImages); if (imgOut->isOk()) { doc->displayPages(imgOut, firstPage, lastPage, 72, 72, 0, gTrue, gFalse, gFalse); |