summaryrefslogtreecommitdiffstats
path: root/qpdf
AgeCommit message (Collapse)Author
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-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-27Add --overlay and --underlay to qpdf CLI (fixes #207)Jay Berkenbilt
2019-01-27Add boundary condition test for getUniqueResourceNameJay 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-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-19More testing for Unicode passwordsJay Berkenbilt
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-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-17Unicode main for Windows qpdf.ccJay 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.
2019-01-17Add tests for shared font/xobjectJay Berkenbilt
The tests are in a separate commit so the bug-fix commit can be taken as a patch for older versions.
2019-01-12Allow adding the same page more than once in --pages (fixes #272)Jay Berkenbilt
2019-01-12Interpret . in --pages as a shortcut for the primary fileJay Berkenbilt
2019-01-11Add QPDF::setImmediateCopyFromJay Berkenbilt
2019-01-07Update copyrights for 2019Jay Berkenbilt
2019-01-07Don't keep QPDF objects for merging longer than neededJay Berkenbilt
2019-01-07Exercise out of scope original pdf for copyForeignObjectJay Berkenbilt
2019-01-07Mostly don't require original QPDF for copyForeignObject (fixes #219)Jay Berkenbilt
The original QPDF is only required now when the source QPDFObjectHandle is a stream that gets its stream data from a QPDFObjectHandle::StreamDataProvider.
2019-01-07Make a static version of QPDF::pipeStreamDataJay Berkenbilt
This is in preparation of being able to pipe a stream's data without keeping a copy of its containing qpdf object.
2019-01-06Honor other base encodings when generating appearancesJay Berkenbilt
2019-01-06Fix image optimization evaluationJay Berkenbilt
Don't attempt to pass data through a JPEG filter if we are unable to filter the data.
2019-01-05Update documentation for new featuresJay Berkenbilt
2019-01-05Split help stringJay Berkenbilt
It was too long for some compilers.
2019-01-05Spell checkJay Berkenbilt
2019-01-05Add CLI flags for image optimizationJay Berkenbilt
2019-01-05Fix image-streams.pdf in test suiteJay Berkenbilt
Some of the images were supposed to have no filter, but somewhere along the line, they ended up with /FlateDecode, most likely because qpdf rewrote the file without having --compress-streams=n specified. If this error is repeated, it will cause a test failure.
2019-01-04Support page collation with --collate (fixes #259)Jay Berkenbilt
2019-01-04Add QPDFWriter::getFinalVersion (fixes #266)Jay Berkenbilt
2019-01-04Fix dangling references (fixes #240)Jay Berkenbilt
On certain operations, such as iterating through all objects and adding new indirect objects, walk through the entire object structure and explicitly resolve any indirect references to non-existent objects. That prevents new objects from springing into existence and causing the previously dangling references to point to them.
2019-01-04Add basic appearance stream generationJay Berkenbilt
2019-01-04Add special case setV code for button fieldsJay Berkenbilt
2019-01-04Replace need-appearances.pdfJay Berkenbilt
Create a new need-appearances.pdf based on newer test files with more modified fields.
2019-01-04Add form fields to json outputJay Berkenbilt
Also add some additional methods for detecting form field types to assist in the json creation and for later use.
2019-01-04New test file with form field typesJay Berkenbilt
2019-01-04Rename test fileJay Berkenbilt
2019-01-03Honor flags when flattening annotationsJay Berkenbilt
2019-01-03Fix seg fault on empty xref stream (fixes #263)Jay Berkenbilt
Thanks to @p-cher for supplying a patch.
2019-01-03Switch annotation flattening to use the form xobjectsJay Berkenbilt
Instead of directly putting the contents of the annotation appearance streams into the page's content stream, add commands to render the form xobjects directly. This is a more robust way to do it than the original solution as it works properly with patterns and avoids problems with resource name clashes between the pages and the form xobjects.