aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
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
2019-01-17Add QUtil::possible_repaired_encodingsJay Berkenbilt
2019-01-17Remove incorrect content code from test filesJay Berkenbilt
2019-01-17Update CLI and manual for new encryption granularity (fixes #214)Jay 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-17Add status-reporting transcoders to QUtilJay Berkenbilt
2019-01-17Unicode main for Windows qpdf.ccJay Berkenbilt
2019-01-17Regenerate autofilesJay Berkenbilt
2019-01-17Test for wmain/unicodeJay Berkenbilt
2019-01-17QUtil::analyze_encodingJay Berkenbilt
2019-01-17Bidirectional transcoding for win, mac, pdf, utf8, utf16Jay Berkenbilt
2019-01-17Move remaining existing transcoding to QUtilJay Berkenbilt
2019-01-17Additional checks for unreferenced resourcesJay Berkenbilt
Explicitly abandon removal of unreferenced resources if there are any lexical errors in the page's contents. This case always generated a warning, but it now also prevents removal of unreferenced resources, this strongly decreasing the likelihood of data loss.