summaryrefslogtreecommitdiffstats
path: root/libqpdf/QPDFWriter.cc
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2012-07-14 15:13:49 +0200
committerJay Berkenbilt <ejb@ql.org>2012-07-14 15:14:41 +0200
commit0575d77d77b0308535422ad2d3a1bf7c94baabb0 (patch)
tree296c10a722b700c70798eb2296a152914a9f5f6c /libqpdf/QPDFWriter.cc
parentee3682f1068fa8edc6e90b911fe2dbfa6bd7733a (diff)
downloadqpdf-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/QPDFWriter.cc')
-rw-r--r--libqpdf/QPDFWriter.cc9
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())