summaryrefslogtreecommitdiff
path: root/utils/pdfimages.cc
diff options
context:
space:
mode:
authorAdrian Johnson <ajohnson@redneon.com>2012-02-13 22:05:18 +1030
committerAdrian Johnson <ajohnson@redneon.com>2012-02-18 09:51:27 +1030
commit521d3740e9b7d2cfacf29f089a4a8f6c962de807 (patch)
treecafd24716ecadbd1f76e860ad237ef67cb36ef35 /utils/pdfimages.cc
parent119b6b752314c9b13440eddf5bd1d5cef2966e80 (diff)
pdfimages: add -list option to list all images
Bug 46066
Diffstat (limited to 'utils/pdfimages.cc')
-rw-r--r--utils/pdfimages.cc12
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);