[poppler] utils/pdftoppm.cc

Albert Astals Cid aacid at kemper.freedesktop.org
Thu Jul 15 02:52:34 PDT 2010


 utils/pdftoppm.cc |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

New commits:
commit fe69b474ae63c9d5d2538db9e51e666dd6ea9fb3
Author: Albert Astals Cid <aacid at kde.org>
Date:   Thu Jul 15 10:51:21 2010 +0100

    Fix padding of names
    
    The previous method returned 2 for documents with 100 pages, which is wrong as 100 needs 3
    characters, not 2

diff --git a/utils/pdftoppm.cc b/utils/pdftoppm.cc
index 849e79f..ed64fea 100644
--- a/utils/pdftoppm.cc
+++ b/utils/pdftoppm.cc
@@ -188,6 +188,18 @@ static void savePageSlice(PDFDoc *doc,
   }
 }
 
+static int numberOfCharacters(unsigned int n)
+{
+  int charNum = 0;
+  while (n >= 10)
+  {
+    n = n / 10;
+    charNum++;
+  }
+  charNum++;
+  return charNum;
+}
+
 int main(int argc, char *argv[]) {
   PDFDoc *doc;
   GooString *fileName = NULL;
@@ -296,7 +308,7 @@ int main(int argc, char *argv[]) {
 				  gFalse, paperColor);
   splashOut->startDoc(doc->getXRef());
   if (sz != 0) w = h = sz;
-  pg_num_len = (int)ceil(log((double)doc->getNumPages()) / log((double)10));
+  pg_num_len = numberOfCharacters(doc->getNumPages());
   for (pg = firstPage; pg <= lastPage; ++pg) {
     if (printOnlyEven && pg % 2 == 0) continue;
     if (printOnlyOdd && pg % 2 == 1) continue;


More information about the poppler mailing list