diff options
Diffstat (limited to 'libqpdf/QPDFWriter.cc')
-rw-r--r-- | libqpdf/QPDFWriter.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 59e306fc..01309f43 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -58,6 +58,7 @@ QPDFWriter::init() stream_data_mode = qpdf_s_compress; qdf_mode = false; precheck_streams = false; + preserve_unreferenced_objects = false; static_id = false; suppress_original_object_ids = false; direct_stream_lengths = true; @@ -184,6 +185,12 @@ QPDFWriter::setPrecheckStreams(bool val) } void +QPDFWriter::setPreserveUnreferencedObjects(bool val) +{ + this->preserve_unreferenced_objects = val; +} + +void QPDFWriter::setMinimumPDFVersion(std::string const& version) { setMinimumPDFVersion(version, 0); @@ -3074,6 +3081,17 @@ QPDFWriter::writeStandard() writeHeader(); writeString(this->extra_header_text); + if (this->preserve_unreferenced_objects) + { + QTC::TC("qpdf", "QPDFWriter preserve unreferenced standard"); + std::vector<QPDFObjectHandle> all = this->pdf.getAllObjects(); + for (std::vector<QPDFObjectHandle>::iterator iter = all.begin(); + iter != all.end(); ++iter) + { + enqueueObject(*iter); + } + } + // Put root first on queue. QPDFObjectHandle trailer = getTrimmedTrailer(); enqueueObject(trailer.getKey("/Root")); |