aboutsummaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDFWriter.hh
AgeCommit message (Collapse)Author
2020-01-26Update copyright to 2020Jay Berkenbilt
2019-10-22Parse Contents in signature dictionary without encryptionMasamichi Hosoda
Various PDF digital signing tools do not encrypt /Contents value in signature dictionary. Adobe Acrobat Reader DC can handle a PDF with the /Contents value not encrypted. Write Contents in signature dictionary without encryption Tests ensure that string /Contents are not handled specially when not found in sig dicts.
2019-10-22Add QPDFWriter::getWrittenXRefTable()Masamichi Hosoda
2019-10-22Add QPDFWriter::getRenumberedObjGen()Masamichi Hosoda
2019-10-22Fix /Contents value representation in a signature dictionaryMasamichi Hosoda
Table 8.93 "Entries in a signature dictionary" in PDF 1.5 reference describes that the value of Contents entry is a hexadecimal string representation when ByteRange is specified. This commit makes QPDF always uses hexadecimal strings representation instead of literal strings for it.
2019-08-28Make popping pipeline stack saferJay Berkenbilt
Use destructors to pop the pipeline stack, and ensure that code that pops the stack is actually popping the intended thing.
2019-08-24Add flags to control zlib compression level (fixes #113)Jay Berkenbilt
2019-06-22QPDFWriter: clean up overloaded functionsJay Berkenbilt
In a small number of cases, it makes sense to replace an overloaded function with a function that takes a default argument. We can do this now because we've already broken binary compatibility since the last release.
2019-06-22Build with -fvisibility=hidden when supportedJay Berkenbilt
2019-06-21Fix sign and conversion warnings (major)Jay Berkenbilt
This makes all integer type conversions that have potential data loss explicit with calls that do range checks and raise an exception. After this commit, qpdf builds with no warnings when -Wsign-conversion -Wconversion is used with gcc or clang or when -W3 -Wd4800 is used with MSVC. This significantly reduces the likelihood of potential crashes from bogus integer values. There are some parts of the code that take int when they should take size_t or an offset. Such places would make qpdf not support files with more than 2^31 of something that usually wouldn't be so large. In the event that such a file shows up and is valid, at least qpdf would raise an error in the right spot so the issue could be legitimately addressed rather than failing in some weird way because of a silent overflow condition.
2019-06-12Fix typo (#334)Marco Scarpetta
2019-01-19Add documentation for features since 8.3.0Jay Berkenbilt
2019-01-17Modernize encryption API for more granularityJay Berkenbilt
Setting encryption permissions for R >= 3 set permission bits in groups corresponding to menu options in Acrobat 5. The new API allows the bits to be set individually.
2019-01-07Update copyrights for 2019Jay Berkenbilt
2019-01-04Add QPDFWriter::getFinalVersion (fixes #266)Jay Berkenbilt
2018-08-12Protect headers with compliant identifiers (fixes #233)Jay Berkenbilt
2018-08-05Add QPDF_DLL to public destructors (fixes #220)Jay Berkenbilt
A few public destructors were missing QPDF_DLL, which could cause some Windows applications to fail to link.
2018-06-22Add progress reporting for QPDFWriter (fixes #200)Jay Berkenbilt
2018-02-19Add option to save pass 1 of lineariziationJay Berkenbilt
This is useful only for debugging the linearization code.
2018-02-05Fix linearization for files with nonstandard ID lengthJay Berkenbilt
2018-01-14Update copyright to 2018Jay Berkenbilt
2017-09-14Additionally license under Apache License version 2.0Jay Berkenbilt
The Apache License version 2.0 is now the primary license for qpdf. However, users may, at their option, continue to use Artistic version 2.0.
2017-08-22Spell checkJay Berkenbilt
2017-08-22Push QPDFWriter member variables into a nested classJay Berkenbilt
2017-08-22Update copyright to 2017Jay Berkenbilt
2017-08-22Combine writePCLm with writeStandardJay Berkenbilt
Reduce code duplication
2017-08-22Combine PCLm header into writeHeaderJay Berkenbilt
2017-08-22Update header documentation and ChangeLog entry for PCLmJay Berkenbilt
2017-08-22QPDFWriter: Add setPCLm() and writePCLm() methodsSahil Arora
* Add support for PCLm using setPCLm() and writePCLm() methods in QPDFWriter.hh and QPDFWriter.cc * Add a function writePCLmHeader() for PCLm header in QPDFWriter
2017-08-21Precheck streams by defaultJay Berkenbilt
There is no need for a --precheck-streams option. We can do the precheck without imposing any penalty, only re-encoding the stream if it fails the first time.
2017-08-21Enable finer grained control of stream decodingJay Berkenbilt
This commit adds several API methods that enable control over which types of filters QPDF will attempt to decode. It also adds support for /RunLengthDecode and /DCTDecode filters for both encoding and decoding.
2017-07-29Add newline-before-endstream option (fixes #103)Jay Berkenbilt
2017-07-29Add option to preserve unreferenced objectsJay Berkenbilt
2017-07-28Add precheck streams capabilityJay Berkenbilt
When requested, QPDFWriter will do more aggress prechecking of streams to make sure it can actually succeed in decoding them before attempting to do so. This will allow preservation of raw data even when the raw data is corrupted relative to the specified filters.
2016-01-24Include QPDFObjectHandle for use in std::listThorsten Schöning
QPDFObjectHandle was used as forward declaration, but C++-Builder 10 Seattle can't use it in std::list in such cases because the type is undefined.
2015-11-10Remove some ABI compatibility private methodsJay Berkenbilt
Since we have to bump soname, remove some private methods that were just there for binary compatibility
2015-10-31Implement deterministic IDJay Berkenbilt
For non-encrypted files, determinstic ID generation uses file contents instead of timestamp and file name. At a small runtime cost, this enables generation of the same /ID if the same inputs are converted in the same way multiple times.
2015-05-24Copyright 2015Jay Berkenbilt
2014-01-14Update Copyright to 2014Jay Berkenbilt
2013-06-14Bug fix: handle generation > 0 when generating object streamsJay Berkenbilt
Rework QPDFWriter to always track old object IDs and QPDFObjGen instead of int, thus not discarding the generation number. Switch to QPDF::getCompressibleObjGen() to properly handle the case of an old object eligible for compression that has a generation of other than zero.
2013-03-11Clarify documentation on encrypted filesJay Berkenbilt
Explicitly state how QPDF handles empty passwords when writing files. Apparently some libraries treat the empty string as the owner password as an instruction to generate a random password.
2012-12-31Avoid modifying trailer when writingJay Berkenbilt
When preparing the trailer for writing to the new file, trim a copy of the trailer instead of the original file's trailer.
2012-12-31Update copyright year to 2013Jay Berkenbilt
Also add copyright notice to a few public headers that were missing one.
2012-12-31Refactor Dictionary writing codeJay Berkenbilt
Original code was written before we could shallow copy objects, so all the filtering was done by suppressing the output of certain keys and replacing them with other keys. Now we can simplify the code greatly by modifying shallow copies of dictionaries in place.
2012-12-31Support for encryption with /V=5 and /R=5 and /R=6Jay Berkenbilt
Read and write support is implemented for /V=5 with /R=5 as well as /R=6. /R=5 is the deprecated encryption method used by Acrobat IX. /R=6 is the encryption method used by PDF 2.0 from ISO 32000-2.
2012-12-31Add ExtensionLevel support to version handlingJay Berkenbilt
All version operations are now fully aware of extension levels.
2012-12-31Add V5 parameters to EncryptionDataJay Berkenbilt
2012-12-31Eliminate flattenScalarReferencesJay Berkenbilt
2012-09-23Allow reading from InputSource and writing to PipelineJay Berkenbilt
Allowing users to subclass InputSource and Pipeline to read and write from/to arbitrary sources provides the maximum flexibility for users who want to read and write from other than files or memory.
2012-09-06Add QPDFWriter::setExtraHeaderTextJay Berkenbilt