aboutsummaryrefslogtreecommitdiffstats
path: root/include/qpdf/QPDFWriter.hh
AgeCommit message (Collapse)Author
2022-09-23Comment about qpdf/PointerHolder.hh in public headersJay Berkenbilt
2022-09-12Add some missing QPDF_DLL markersJay Berkenbilt
These markers are being added for nested classes that are already marked with QPDF_DLL_CLASS. They don't make any different on Linux, but they matter on Windows.
2022-06-19Move C-based ProgressReporter helper into QPDFWriterJay Berkenbilt
2022-04-30Mark weak encryption with API changes (fixes #576)Jay Berkenbilt
2022-04-30Remove deprecated (pre-8.4.0) encryption APIsJay Berkenbilt
2022-04-16Use = default and = delete where possible in classesJay Berkenbilt
2022-04-09Replace PointerHolder with std::shared_ptr in library sources onlyJay Berkenbilt
(patrepl and cleanpatch are my own utilities) patrepl s/PointerHolder/std::shared_ptr/g {include,libqpdf}/qpdf/*.hh patrepl s/PointerHolder/std::shared_ptr/g libqpdf/*.cc patrepl s/make_pointer_holder/std::make_shared/g libqpdf/*.cc patrepl s/make_array_pointer_holder/QUtil::make_shared_array/g libqpdf/*.cc patrepl s,qpdf/std::shared_ptr,qpdf/PointerHolder, **/*.cc **/*.hh git restore include/qpdf/PointerHolder.hh cleanpatch ./format-code
2022-04-04Programmatically apply new formatting to codeJay Berkenbilt
Run this: for i in **/*.cc **/*.c **/*.h **/*.hh; do clang-format < $i >| $i.new && mv $i.new $i done
2022-02-08Preserve input PDF version on pages/split-pages (fixes #610)Jay Berkenbilt
2022-02-08WHITESPACE ONLY -- expand tabs in source codeJay Berkenbilt
This comment expands all tabs using an 8-character tab-width. You should ignore this commit when using git blame or use git blame -w. In the early days, I used to use tabs where possible for indentation, since emacs did this automatically. In recent years, I have switched to only using spaces, which means qpdf source code has been a mixture of spaces and tabs. I have avoided cleaning this up because of not wanting gratuitous whitespaces change to cloud the output of git blame, but I changed my mind after discussing with users who view qpdf source code in editors/IDEs that have other tab widths by default and in light of the fact that I am planning to start applying automatic code formatting soon.
2022-02-07Add getBufferSharedPointer() to Pl_Buffer and QPDFWriterJay Berkenbilt
2022-02-04Update copyright for 2022Jay Berkenbilt
2022-02-04Replace containers of PointerHolder with containers of std::shared_ptrJay Berkenbilt
None of these are in the public API.
2021-11-11First increment of improving handling of weak crypto (fixes #358)Jay Berkenbilt
2021-01-04Update copyright to 2021Jay Berkenbilt
2020-12-28Refactor: separate code that determines whether to filter a streamJay Berkenbilt
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.