aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-02-14The kfo-PDF files for testing need to be copied using "binmode" or Windows ↵Thorsten Schöning
will introduce \r\n. qpdf: selecting --keep-open-files=n qpdf: processing 001-kfo.pdf WARNING: 001-kfo.pdf: file is damaged WARNING: 001-kfo.pdf (offset 556): xref not found WARNING: 001-kfo.pdf: Attempting to reconstruct cross-reference table
2019-02-08Add test for exception handlingJay Berkenbilt
There have been issues reported where exceptions are not thrown properly across shared library/DLL boundaries, so add a test specifically to ensure that exceptions are caught as thrown.
2019-02-02Fix typo in release instructionsJay Berkenbilt
2019-02-02Update release checklistrelease-qpdf-8.4.0Jay Berkenbilt
2019-02-02Merge pull request #222 from ryandesign/LDFLAGS-orderJay Berkenbilt
Ensure zlib-flate doesn't link with an old libqpdf
2019-02-02Prepare 8.4.0 releaseJay Berkenbilt
2019-02-02Update binary compatibility test instructionsJay Berkenbilt
Since autogenerated files are now committed, we no longer need to rerun ./autogen.sh and actually shouldn't because it could mask errors.
2019-02-02Incorporate improved Windows fragility workaround from qtestJay Berkenbilt
2019-02-01TODOJay Berkenbilt
2019-02-01Spell checkJay Berkenbilt
2019-02-01Add another test case for weird page treesJay Berkenbilt
2019-02-01Don't optimize non-8-bit imagesJay Berkenbilt
Also add test cases for additional coverage on image optimization.
2019-02-01Make inline image token exactly contain the image dataJay Berkenbilt
Do not include the trailing EI, and handle cases where EI is not preceded by a delimiter. Such cases have been seen in the wild.
2019-01-31Externalize inline images (fixes #278)Jay Berkenbilt
2019-01-31Remove acroread from testsJay Berkenbilt
This hasn't worked or been exercised in years since Adobe stopped releasing a Linux version of reader.
2019-01-31Exclude space after ID in image dataJay Berkenbilt
2019-01-31Improve locating inline image's EIJay Berkenbilt
We've actually seen a PDF file in the wild that contained EI surrounded by delimiters inside the image data, which confused qpdf's naive code. This significantly improves EI detection.
2019-01-31Refactor QPDFTokenizer's inline image handlingJay Berkenbilt
Add a version of expectInlineImage that takes an input source and searches for EI. This is in preparation for improving the way EI is found. This commit just refactors the code without changing the functionality and adds tests to make sure the old and new code behave identically.
2019-01-31Inline image token value ends with EI, not delimiterJay Berkenbilt
The inline image token erroneously included the delimiter that followed EI. The ObjectHandle created from it was correct.
2019-01-31Typo in messageJay Berkenbilt
2019-01-30Clean up some private functionsJay Berkenbilt
2019-01-30Improve info message in optimize images (fixes #280)Jay Berkenbilt
When qpdf can't optimize an image because of an unsupported color space, state this specifically. Recognize that many valid colorspaces are not represented as name objects.
2019-01-29Handle direct page objects (fixes #164)Jay Berkenbilt
2019-01-29Clarify documentation for copyForeignObject regarding pagesJay Berkenbilt
Make explicit that copyForeignObject can be used on page objects and will copy them properly but not update the pages tree.
2019-01-29Fix logic for when to compress object and xref streams (fixes #271)Jay Berkenbilt
2019-01-29Resolve duplicated page objects (fixes #268)Jay Berkenbilt
When linearizing a file or getting the list of all pages in a file, detect if the pages tree contains a duplicated page object and, if so, shallow copy it. This makes it possible to have a one to one mapping of page positions to page objects.
2019-01-29TODOJay Berkenbilt
2019-01-28Fix typo in documentationJay Berkenbilt
2019-01-28Download external libraries from githubJay Berkenbilt
Download external libraries from an isolated branch in github to avoid dependencies on external download locations, which cause sporadic CI build failures.
2019-01-27TODOJay Berkenbilt
2019-01-27Add --overlay and --underlay to qpdf CLI (fixes #207)Jay Berkenbilt
2019-01-27Add boundary condition test for getUniqueResourceNameJay Berkenbilt
2019-01-27Example of form XObject, page overlayJay Berkenbilt
2019-01-27Convert pages to form XObjectsJay Berkenbilt
Support conversion of pages to form XObjects and placement of form XObjects on pages.
2019-01-27Move rectangle transformation into QPDFMatrixJay Berkenbilt
2019-01-27Add QPDFObjectHandle::getUniqueResourceNameJay Berkenbilt
2019-01-26Handle inheritable page attributesJay Berkenbilt
Add getAttribute for handling inheritable page attributes, and fix getPageImages and annotation flattening code to use it.
2019-01-21Handle fallback font size in text appearancesJay Berkenbilt
If we end up using our fallback font size when generating appearances for text fields, reflect that in the Tf operator used in the appearance stream.
2019-01-21Improve text objects used in text appearance streamsJay Berkenbilt
2019-01-21Fix omissions in text appearance generationJay Berkenbilt
When generating appearance streams for variable text annotations, properly handle the cases of there being no appearance dictionary, no appearance stream, or an appearance stream with no BMC..EMC marker.
2019-01-21When flattening, remove annotations with no appearance streamJay Berkenbilt
With the exception of form field annotations when /NeedAppearances is true, remove annotations that don't have appearance streams when flattening. There is no reason to keep these when flattening since they are invisible. This may include unchecked checkboxes, unshown popup windows, etc.
2019-01-21TODOJay Berkenbilt
2019-01-19TODOJay Berkenbilt
2019-01-19Add documentation for features since 8.3.0Jay Berkenbilt
2019-01-19More testing for Unicode passwordsJay Berkenbilt
2019-01-19TODOJay Berkenbilt
2019-01-19mingw workaround for QPDFExc destructorJay Berkenbilt
mingw doesn't like it when you don't inline empty virtual destructors.
2019-01-19Implement password recovery suppression and password mode (fixes #215)Jay Berkenbilt
Allow fine control over how passwords are encoded for writing, and allow password for reading to be given as a hexademical encoded string. Allow suppression of password recovery as a means to ensure that the password you specify is actually the right one.
2019-01-19Try passwords with different string encodingsJay Berkenbilt
2019-01-19Refactor qpdf processingJay Berkenbilt
Push calls to processFile and processInputSource into separate functions in preparation for password recovery changes