Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-03-03 | Create ResourceFinder from NameWatcher in QPDFPageObjectHelper | Jay Berkenbilt | |
2021-02-23 | Remove warning that gives false positives in some normal cases | Jay Berkenbilt | |
2021-02-23 | Add new placeFormXObject that takes a matrix reference | Jay Berkenbilt | |
2021-02-23 | Add copyAnnotations, use with overlay/underlay (fixes #395) | Jay Berkenbilt | |
2021-02-21 | Add transformAnnotations and fix flattenRotations to use it | Jay Berkenbilt | |
2021-02-21 | Explicitly override inherited rotate in flattenRotations | Jay Berkenbilt | |
2021-02-21 | Use QPDFMatrix inside flattenRotations | Jay Berkenbilt | |
2021-02-18 | Add QPDFPageObjectHelper::getMatrixForFormXObjectPlacement | Jay Berkenbilt | |
2021-02-03 | Handle older PDFs whose form XObjects inherit resources (fixes #494) | Jay Berkenbilt | |
When removing unreferenced resources, notice if a page (recursively) contains a form XObject with unreferenced resources, and count any such resources as referenced by the page. | |||
2021-02-03 | Refactor removal of unreferenced resources | Jay Berkenbilt | |
Refactor in preparation for resolving unresolved resources in form xobjects from page. | |||
2021-01-31 | Handle strings in inline image dictionaries | Jay Berkenbilt | |
We need to use token.getRawValue, not token.getValue | |||
2021-01-31 | Recover from exceptions during filtering for inline images | Jay Berkenbilt | |
2021-01-04 | Spell check | Jay Berkenbilt | |
2021-01-03 | Fix outdated comment | Jay Berkenbilt | |
2021-01-02 | Make more QPDFPageObjectHelper methods work with form XObject | Jay Berkenbilt | |
2021-01-02 | Externalize inline images now includes form XObjects | Jay Berkenbilt | |
2021-01-02 | Add several methods for working with form XObjects (fixes #436) | Jay Berkenbilt | |
Make some more methods in QPDFPageObjectHelper work with form XObjects, provide forEach methods to walk through nested form XObjects, possibly recursively. This should make it easier to work with form XObjects from user code. | |||
2021-01-02 | QPDFPageObjectHelper: filterPageContents -> filterContents + form XObject | Jay Berkenbilt | |
2021-01-02 | QPDFPageObjectHelper: getPageImages -> getImages | Jay Berkenbilt | |
2021-01-02 | QPDFPageObjectHelper::getPageImages: support form XObjects | Jay Berkenbilt | |
2021-01-01 | Add QPDFObjectHandle::isFormXObject | Jay Berkenbilt | |
2020-12-30 | Add QPDFPageObjectHelper::flattenRotation and --flatten-rotation | Jay Berkenbilt | |
2020-04-16 | Fix warnings reported by -Wshadow=local (fixes #431) | Jay Berkenbilt | |
2020-04-04 | placeFormXObject: allow control of shrink/expand (fixes #409) | Jay Berkenbilt | |
2020-04-03 | QPDFPageObjectHelper::placeFormXObject: use std::string const& (fixes #374) | Jay Berkenbilt | |
2020-03-31 | Look in form XObjects when removing unreferenced resources (fixes #373) | Jay Berkenbilt | |
If a page contains a form XObject, also filter the form XObject and remove its unreferenced resources. | |||
2020-03-31 | Refactor QPDFPageObjectHelper::removeUnreferencedResources() | Jay Berkenbilt | |
Refactor removeUnreferencedResources to prepare for filtering form XObjects. | |||
2020-01-26 | Bug fix: handle ColorSpace lookup for inline images (fixes #392) | Jay Berkenbilt | |
If the value of /CS in the inline image dictionary was is key in the page's /Resource -> /ColorSpace dictionary, properly resolve it by referencing the proper colorspace, and not just the name, in the external image dictionary. | |||
2019-11-09 | Allow /P in encryption dictionary to be positive (fixes #382) | Jay Berkenbilt | |
Even though this is disallowed by the spec, files like this have been encountered in the wild. | |||
2019-06-21 | Fix 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-02-01 | Spell check | Jay Berkenbilt | |
2019-02-01 | Make inline image token exactly contain the image data | Jay 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-31 | Externalize inline images (fixes #278) | Jay Berkenbilt | |
2019-01-27 | Convert pages to form XObjects | Jay Berkenbilt | |
Support conversion of pages to form XObjects and placement of form XObjects on pages. | |||
2019-01-26 | Handle inheritable page attributes | Jay Berkenbilt | |
Add getAttribute for handling inheritable page attributes, and fix getPageImages and annotation flattening code to use it. | |||
2019-01-17 | Additional checks for unreferenced resources | Jay 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. | |||
2019-01-17 | Copy subdictionaries when removing resources (fixes #276) | Jay Berkenbilt | |
When removing unreferenced resources, the code was copying the overall resource dictionaries but not the subdictionaries being modified. This was a "typo" in the code -- the comment clearly stated the need to do this, but the code replaced the dictionary with itself rather than with a shallow copy of itself. | |||
2019-01-12 | Allow adding the same page more than once in --pages (fixes #272) | Jay Berkenbilt | |
2018-06-22 | Don't prune resource dictionaries on errors or by request | Jay Berkenbilt | |
If we are unable to filter a page's content streams, don't attempt to remove objects from the page's resource dictionary. Also provide a command line option to suppress resource removal in case we ever need this as a workaround for some bug or broken PDF files. | |||
2018-06-22 | When splitting files, remove unreferenced objects (fixes #203) | Jay Berkenbilt | |
2018-06-21 | Implement helper class for interactive forms | Jay Berkenbilt | |
2018-06-21 | Add QPDFPageDocumentHelper and QPDFPageObjectHelper | Jay Berkenbilt | |
This is the beginning of higher-level API support using helper classes. The goal is to be able to add more helpers without continuing to pollute QPDF's and QPDFObjectHandle's public interfaces. |