[poppler] poppler/PDFDoc.cc poppler/PDFDoc.h qt4/src qt5/src utils/pdfunite.cc
Albert Astals Cid
aacid at kemper.freedesktop.org
Tue Sep 1 14:48:50 PDT 2015
poppler/PDFDoc.cc | 33 ++++++++++++++-------------------
poppler/PDFDoc.h | 11 +++++------
qt4/src/poppler-pdf-converter.cc | 14 +-------------
qt4/src/poppler-qt4.h | 4 +---
qt5/src/poppler-pdf-converter.cc | 14 +-------------
qt5/src/poppler-qt5.h | 4 +---
utils/pdfunite.cc | 3 +--
7 files changed, 24 insertions(+), 59 deletions(-)
New commits:
commit 3c91ded21c828d3529f9cd00c417601c67c8a741
Author: Albert Astals Cid <aacid at kde.org>
Date: Tue Sep 1 23:46:55 2015 +0200
Revert a42614284c94c6742b2343abd797657fffa80e0e
diff --git a/poppler/PDFDoc.cc b/poppler/PDFDoc.cc
index 153dc75..46c4544 100644
--- a/poppler/PDFDoc.cc
+++ b/poppler/PDFDoc.cc
@@ -29,7 +29,7 @@
// Copyright (C) 2011-2015 Thomas Freitag <Thomas.Freitag at alfa.de>
// Copyright (C) 2012, 2013 Fabio D'Urso <fabiodurso at hotmail.it>
// Copyright (C) 2013, 2014 Adrian Johnson <ajohnson at redneon.com>
-// Copyright (C) 2013, 2015 Adam Reichold <adamreichold at myopera.com>
+// Copyright (C) 2013 Adam Reichold <adamreichold at myopera.com>
// Copyright (C) 2014 Bogdan Cristea <cristeab at gmail.com>
// Copyright (C) 2015 Li Junling <lijunling at sina.com>
//
@@ -763,7 +763,7 @@ int PDFDoc::savePageAs(GooString *name, int pageNo)
Ref ref;
ref.num = rootNum;
ref.gen = 0;
- Dict *trailerDict = createTrailerDict(rootNum + 3, gFalse, gFalse, 0, &ref, getXRef(),
+ Dict *trailerDict = createTrailerDict(rootNum + 3, gFalse, 0, &ref, getXRef(),
name->getCString(), uxrefOffset);
writeXRefTableTrailer(trailerDict, yRef, gFalse /* do not write unnecessary entries */,
uxrefOffset, outStr, getXRef());
@@ -809,10 +809,7 @@ int PDFDoc::saveAs(OutStream *outStr, PDFWriteMode mode) {
// simply copy the original file
saveWithoutChangesAs (outStr);
} else if (mode == writeForceRewrite) {
- saveCompleteRewrite(outStr, false);
- } else if (mode == writeStripEncryption) {
- // do a complete rewrite ignoring the original encryption parameters
- saveCompleteRewrite(outStr, true);
+ saveCompleteRewrite(outStr);
} else {
saveIncrementalUpdate(outStr);
}
@@ -919,7 +916,7 @@ void PDFDoc::saveIncrementalUpdate (OutStream* outStr)
uxref->add(uxrefStreamRef.num, uxrefStreamRef.gen, uxrefOffset, gTrue);
}
- Dict *trailerDict = createTrailerDict(numobjects, gTrue, gFalse, getStartXRef(), &rootRef, getXRef(), fileNameA, uxrefOffset);
+ Dict *trailerDict = createTrailerDict(numobjects, gTrue, getStartXRef(), &rootRef, getXRef(), fileNameA, uxrefOffset);
if (xRefStream) {
writeXRefStreamTrailer(trailerDict, uxref, &uxrefStreamRef, uxrefOffset, outStr, getXRef());
} else {
@@ -930,18 +927,16 @@ void PDFDoc::saveIncrementalUpdate (OutStream* outStr)
delete uxref;
}
-void PDFDoc::saveCompleteRewrite (OutStream* outStr, GBool stripEncryption)
+void PDFDoc::saveCompleteRewrite (OutStream* outStr)
{
// Make sure that special flags are set, because we are going to read
// all objects, including Unencrypted ones.
xref->scanSpecialFlags();
- Guchar *fileKey = NULL;
- CryptAlgorithm encAlgorithm = cryptRC4;
- int keyLength = 0;
-
- if (!stripEncryption)
- xref->getEncryptionParameters(&fileKey, &encAlgorithm, &keyLength);
+ Guchar *fileKey;
+ CryptAlgorithm encAlgorithm;
+ int keyLength;
+ xref->getEncryptionParameters(&fileKey, &encAlgorithm, &keyLength);
outStr->printf("%%PDF-%d.%d\r\n",pdfMajorVersion,pdfMinorVersion);
XRef *uxref = new XRef();
@@ -991,7 +986,7 @@ void PDFDoc::saveCompleteRewrite (OutStream* outStr, GBool stripEncryption)
xref->unlock();
Goffset uxrefOffset = outStr->getPos();
writeXRefTableTrailer(uxrefOffset, uxref, gTrue /* write all entries */,
- uxref->getNumObjects(), outStr, gFalse /* complete rewrite */, stripEncryption);
+ uxref->getNumObjects(), outStr, gFalse /* complete rewrite */);
delete uxref;
}
@@ -1274,7 +1269,7 @@ void PDFDoc::writeObjectFooter (OutStream* outStr)
outStr->printf("endobj\r\n");
}
-Dict *PDFDoc::createTrailerDict(int uxrefSize, GBool incrUpdate, GBool stripEncryption, Goffset startxRef,
+Dict *PDFDoc::createTrailerDict(int uxrefSize, GBool incrUpdate, Goffset startxRef,
Ref *root, XRef *xRef, const char *fileName, Goffset fileSize)
{
Dict *trailerDict = new Dict(xRef);
@@ -1313,7 +1308,7 @@ Dict *PDFDoc::createTrailerDict(int uxrefSize, GBool incrUpdate, GBool stripEncr
obj1.free();
GBool hasEncrypt = gFalse;
- if (!stripEncryption && !xRef->getTrailerDict()->isNone()) {
+ if (!xRef->getTrailerDict()->isNone()) {
Object obj2;
xRef->getTrailerDict()->dictLookupNF("Encrypt", &obj2);
if (!obj2.isNull()) {
@@ -1406,7 +1401,7 @@ void PDFDoc::writeXRefStreamTrailer (Dict *trailerDict, XRef *uxref, Ref *uxrefS
}
void PDFDoc::writeXRefTableTrailer(Goffset uxrefOffset, XRef *uxref, GBool writeAllEntries,
- int uxrefSize, OutStream* outStr, GBool incrUpdate, GBool stripEncryption)
+ int uxrefSize, OutStream* outStr, GBool incrUpdate)
{
const char *fileNameA = fileName ? fileName->getCString() : NULL;
// file size (doesn't include the trailer)
@@ -1420,7 +1415,7 @@ void PDFDoc::writeXRefTableTrailer(Goffset uxrefOffset, XRef *uxref, GBool write
Ref ref;
ref.num = getXRef()->getRootNum();
ref.gen = getXRef()->getRootGen();
- Dict * trailerDict = createTrailerDict(uxrefSize, incrUpdate, stripEncryption, getStartXRef(), &ref,
+ Dict * trailerDict = createTrailerDict(uxrefSize, incrUpdate, getStartXRef(), &ref,
getXRef(), fileNameA, fileSize);
writeXRefTableTrailer(trailerDict, uxref, writeAllEntries, uxrefOffset, outStr, getXRef());
delete trailerDict;
diff --git a/poppler/PDFDoc.h b/poppler/PDFDoc.h
index d4a8b5e..6c40f7b 100644
--- a/poppler/PDFDoc.h
+++ b/poppler/PDFDoc.h
@@ -25,7 +25,7 @@
// Copyright (C) 2011, 2013, 2014 Thomas Freitag <Thomas.Freitag at alfa.de>
// Copyright (C) 2012 Fabio D'Urso <fabiodurso at hotmail.it>
// Copyright (C) 2013 Adrian Johnson <ajohnson at redneon.com>
-// Copyright (C) 2013, 2015 Adam Reichold <adamreichold at myopera.com>
+// Copyright (C) 2013 Adam Reichold <adamreichold at myopera.com>
// Copyright (C) 2013 Adrian Perez de Castro <aperez at igalia.com>
//
// To see a description of the changes please see the Changelog file that
@@ -66,8 +66,7 @@ class StructTreeRoot;
enum PDFWriteMode {
writeStandard,
writeForceRewrite,
- writeForceIncremental,
- writeStripEncryption
+ writeForceIncremental
};
//------------------------------------------------------------------------
@@ -259,7 +258,7 @@ public:
static void writeHeader(OutStream *outStr, int major, int minor);
// Ownership goes to the caller
- static Dict *createTrailerDict (int uxrefSize, GBool incrUpdate, GBool stripEncryption, Goffset startxRef,
+ static Dict *createTrailerDict (int uxrefSize, GBool incrUpdate, Goffset startxRef,
Ref *root, XRef *xRef, const char *fileName, Goffset fileSize);
static void writeXRefTableTrailer (Dict *trailerDict, XRef *uxref, GBool writeAllEntries,
Goffset uxrefOffset, OutStream* outStr, XRef *xRef);
@@ -286,11 +285,11 @@ private:
static void writeStream (Stream* str, OutStream* outStr);
static void writeRawStream (Stream* str, OutStream* outStr);
void writeXRefTableTrailer (Goffset uxrefOffset, XRef *uxref, GBool writeAllEntries,
- int uxrefSize, OutStream* outStr, GBool incrUpdate, GBool stripEncryption);
+ int uxrefSize, OutStream* outStr, GBool incrUpdate);
static void writeString (GooString* s, OutStream* outStr, Guchar *fileKey,
CryptAlgorithm encAlgorithm, int keyLength, int objNum, int objGen);
void saveIncrementalUpdate (OutStream* outStr);
- void saveCompleteRewrite (OutStream* outStr, GBool stripEncryption);
+ void saveCompleteRewrite (OutStream* outStr);
Page *parsePage(int page);
diff --git a/qt4/src/poppler-pdf-converter.cc b/qt4/src/poppler-pdf-converter.cc
index 362d56c..9699b75 100644
--- a/qt4/src/poppler-pdf-converter.cc
+++ b/qt4/src/poppler-pdf-converter.cc
@@ -1,7 +1,6 @@
/* poppler-pdf-converter.cc: qt4 interface to poppler
* Copyright (C) 2008, Pino Toscano <pino at kde.org>
* Copyright (C) 2008, 2009, Albert Astals Cid <aacid at kde.org>
- * Copyright (C) 2015 Adam Reichold <adamreichold at myopera.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -93,18 +92,7 @@ bool PDFConverter::convert()
QIODeviceOutStream stream(dev);
if (d->opts & WithChanges)
{
- PDFWriteMode mode = writeStandard;
-
- if (d->opts & StripEncryption)
- {
- mode = writeStripEncryption;
- }
- else if (d->opts & ForceRewrite)
- {
- mode = writeForceRewrite;
- }
-
- errorCode = d->document->doc->saveAs(&stream, mode);
+ errorCode = d->document->doc->saveAs(&stream);
}
else
{
diff --git a/qt4/src/poppler-qt4.h b/qt4/src/poppler-qt4.h
index bf7d05c..c0340a4 100644
--- a/qt4/src/poppler-qt4.h
+++ b/qt4/src/poppler-qt4.h
@@ -1668,9 +1668,7 @@ height = dummy.height();
Options for the PDF export.
*/
enum PDFOption {
- WithChanges = 0x00000001, ///< The changes done to the document are saved as well
- ForceRewrite = 0x00000002, ///< The document is rewritten instead of update incrementally (only applicable if WithChanges is also set) \since 0.36
- StripEncryption = 0x00000004 ///< The document is saved without encryption (only applicable if WithChanges is also set and implies ForceRewrite) \since 0.36
+ WithChanges = 0x00000001 ///< The changes done to the document are saved as well
};
Q_DECLARE_FLAGS( PDFOptions, PDFOption )
diff --git a/qt5/src/poppler-pdf-converter.cc b/qt5/src/poppler-pdf-converter.cc
index 0a8588c..557a9f8 100644
--- a/qt5/src/poppler-pdf-converter.cc
+++ b/qt5/src/poppler-pdf-converter.cc
@@ -1,7 +1,6 @@
/* poppler-pdf-converter.cc: qt interface to poppler
* Copyright (C) 2008, Pino Toscano <pino at kde.org>
* Copyright (C) 2008, 2009, Albert Astals Cid <aacid at kde.org>
- * Copyright (C) 2015 Adam Reichold <adamreichold at myopera.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -93,18 +92,7 @@ bool PDFConverter::convert()
QIODeviceOutStream stream(dev);
if (d->opts & WithChanges)
{
- PDFWriteMode mode = writeStandard;
-
- if (d->opts & StripEncryption)
- {
- mode = writeStripEncryption;
- }
- else if (d->opts & ForceRewrite)
- {
- mode = writeForceRewrite;
- }
-
- errorCode = d->document->doc->saveAs(&stream, mode);
+ errorCode = d->document->doc->saveAs(&stream);
}
else
{
diff --git a/qt5/src/poppler-qt5.h b/qt5/src/poppler-qt5.h
index 53fcf51..b159477 100644
--- a/qt5/src/poppler-qt5.h
+++ b/qt5/src/poppler-qt5.h
@@ -1629,9 +1629,7 @@ height = dummy.height();
Options for the PDF export.
*/
enum PDFOption {
- WithChanges = 0x00000001, ///< The changes done to the document are saved as well
- ForceRewrite = 0x00000002, ///< The document is rewritten instead of update incrementally (only applicable if WithChanges is also set) \since 0.36
- StripEncryption = 0x00000004 ///< The document is saved without encryption (only applicable if WithChanges is also set and implies ForceRewrite) \since 0.36
+ WithChanges = 0x00000001 ///< The changes done to the document are saved as well
};
Q_DECLARE_FLAGS( PDFOptions, PDFOption )
diff --git a/utils/pdfunite.cc b/utils/pdfunite.cc
index 9aa80be..19a1eb5 100644
--- a/utils/pdfunite.cc
+++ b/utils/pdfunite.cc
@@ -11,7 +11,6 @@
// Copyright (C) 2013 Adrian Johnson <ajohnson at redneon.com>
// Copyright (C) 2013 Hib Eris <hib at hiberis.nl>
// Copyright (C) 2015 Arthur Stavisky <vovodroid at gmail.com>
-// Copyright (C) 2015 Adam Reichold <adamreichold at myopera.com>
//
//========================================================================
@@ -451,7 +450,7 @@ int main (int argc, char *argv[])
Ref ref;
ref.num = rootNum;
ref.gen = 0;
- Dict *trailerDict = PDFDoc::createTrailerDict(objectsCount, gFalse, gFalse, 0, &ref, yRef,
+ Dict *trailerDict = PDFDoc::createTrailerDict(objectsCount, gFalse, 0, &ref, yRef,
fileName, outStr->getPos());
PDFDoc::writeXRefTableTrailer(trailerDict, yRef, gTrue, // write all entries according to ISO 32000-1, 7.5.4 Cross-Reference Table: "For a file that has never been incrementally updated, the cross-reference section shall contain only one subsection, whose object numbering begins at 0."
uxrefOffset, outStr, yRef);
More information about the poppler
mailing list