From 0575d77d77b0308535422ad2d3a1bf7c94baabb0 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 14 Jul 2012 09:13:49 -0400 Subject: Add public QPDFWriter::copyEncryptionParameters Method to copy encryption parameters from another file. Adapted from existing code to copy encryption parameters from the original file. --- libqpdf/QPDFWriter.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'libqpdf/QPDFWriter.cc') diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index ce5cb3e0..96f3ff21 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -389,10 +389,11 @@ QPDFWriter::setEncryptionParameters( } void -QPDFWriter::copyEncryptionParameters() +QPDFWriter::copyEncryptionParameters(QPDF& qpdf) { + this->preserve_encryption = false; generateID(); - QPDFObjectHandle trailer = this->pdf.getTrailer(); + QPDFObjectHandle trailer = qpdf.getTrailer(); if (trailer.hasKey("/Encrypt")) { QPDFObjectHandle encrypt = trailer.getKey("/Encrypt"); @@ -410,6 +411,8 @@ QPDFWriter::copyEncryptionParameters() } QTC::TC("qpdf", "QPDFWriter copy encrypt metadata", this->encrypt_metadata ? 0 : 1); + this->id1 = + trailer.getKey("/ID").getArrayItem(0).getStringValue(); setEncryptionParametersInternal( V, encrypt.getKey("/R").getIntValue(), @@ -1625,7 +1628,7 @@ QPDFWriter::write() if (preserve_encryption) { - copyEncryptionParameters(); + copyEncryptionParameters(this->pdf); } if (! this->forced_pdf_version.empty()) -- cgit v1.2.3-54-g00ecf