diff options
author | Jay Berkenbilt <ejb@ql.org> | 2012-07-14 15:13:49 +0200 |
---|---|---|
committer | Jay Berkenbilt <ejb@ql.org> | 2012-07-14 15:14:41 +0200 |
commit | 0575d77d77b0308535422ad2d3a1bf7c94baabb0 (patch) | |
tree | 296c10a722b700c70798eb2296a152914a9f5f6c /libqpdf | |
parent | ee3682f1068fa8edc6e90b911fe2dbfa6bd7733a (diff) | |
download | qpdf-0575d77d77b0308535422ad2d3a1bf7c94baabb0.tar.zst |
Add public QPDFWriter::copyEncryptionParameters
Method to copy encryption parameters from another file. Adapted from
existing code to copy encryption parameters from the original file.
Diffstat (limited to 'libqpdf')
-rw-r--r-- | libqpdf/QPDFWriter.cc | 9 |
1 files changed, 6 insertions, 3 deletions
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()) |