add to parameters for command line tools pdftoppm
-sep : single character separor between name and page number, default -
-forcenum : force page number even if there is only one page
diff --git a/utils/pdftoppm.1 b/utils/pdftoppm.1
index 75a4f47..79d78f4 100644
--- a/utils/pdftoppm.1
+++ b/utils/pdftoppm.1
@@ -135,6 +135,12 @@
.B \-q
Don't print any messages or errors.
.TP
+.BI \-sep " char"
+Specify single character separator between name and page number, default - .
+.TP
+.B \-forcenum
+Force page number even if there is only one page.
+.TP
.B \-v
Print copyright and version information.
.TP
diff --git a/utils/pdftoppm.cc b/utils/pdftoppm.cc
index 7d72c8d..03d416e 100644
--- a/utils/pdftoppm.cc
+++ b/utils/pdftoppm.cc
@@ -28,6 +28,7 @@
// Copyright (C) 2013 Suzuki Toshiya <mpsuzuki@hiroshima-u.ac.jp>
// Copyright (C) 2015 William Bader <williambader@hotmail.com>
// Copyright (C) 2018 Martin Packman <gzlist@googlemail.com>
+// Copyright (C) 2019 Yves-Gaël Chény <gitlab@r0b0t.fr>
//
// To see a description of the changes please see the Changelog file that
// came with your tarball or type make ChangeLog if you are building from git
@@ -86,6 +87,8 @@
static bool useCropBox = false;
static bool mono = false;
static bool gray = false;
+static char sep[2] = "-";
+static bool forceNum = false;
static bool png = false;
static bool jpeg = false;
static bool jpegcmyk = false;
@@ -156,6 +159,10 @@
"generate a monochrome PBM file"},
{"-gray", argFlag, &gray, 0,
"generate a grayscale PGM file"},
+ {"-sep", argString, sep, sizeof(sep),
+ "single character separator between name and page number, default - "},
+ {"-forcenum", argFlag, &forceNum, 0,
+ "force page number even if there is only one page "},
#ifdef ENABLE_LIBPNG
{"-png", argFlag, &png, 0,
"generate a PNG file"},
@@ -585,12 +592,12 @@
}
if (ppmRoot != nullptr) {
const char *ext = png ? "png" : (jpeg || jpegcmyk) ? "jpg" : tiff ? "tif" : mono ? "pbm" : gray ? "pgm" : "ppm";
- if (singleFile) {
+ if (singleFile && !forceNum ) {
ppmFile = new char[strlen(ppmRoot) + 1 + strlen(ext) + 1];
sprintf(ppmFile, "%s.%s", ppmRoot, ext);
} else {
ppmFile = new char[strlen(ppmRoot) + 1 + pg_num_len + 1 + strlen(ext) + 1];
- sprintf(ppmFile, "%s-%0*d.%s", ppmRoot, pg_num_len, pg, ext);
+ sprintf(ppmFile, "%s%s%0*d.%s", ppmRoot, sep, pg_num_len, pg, ext);
}
} else {
ppmFile = nullptr;