aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2019-01-06Spell checkJay Berkenbilt
2019-01-06TODOJay Berkenbilt
2019-01-06Honor other base encodings when generating appearancesJay Berkenbilt
2019-01-06Add WinAnsi and MacRoman encodingJay Berkenbilt
2019-01-06Refactor QUtil::utf8_to_asciiJay Berkenbilt
2019-01-06Move utf8_to_utf16 into QUtilJay Berkenbilt
2019-01-06Refactor string transcoding in QPDF_StringJay 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-05Documentation noteJay Berkenbilt
2019-01-05TODOJay Berkenbilt
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-04Don't call assert while checking linearization data (fixes #209, #231)Jay Berkenbilt
Instead of calling assert for problems found during checking linearization data, throw an exception which is later caught and issued as an error. Ideally we would handle errors more robustly, but this is still a significant improvement.
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 QUtil::utf8_to_asciiJay 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-03Minor fixesJay 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.
2019-01-03Remove bogus test cheating codeJay Berkenbilt
2019-01-01TODOJay Berkenbilt
2019-01-01Annotation flattening including form fieldsJay Berkenbilt
Flatten annotations by integrating their appearance streams into the content stream of the containing page. In the case of form fields, only flatten if /NeedAppearance is false (or equivalently absent). If flattening form fields, also remove /AcroForm from the document catalog.
2019-01-01Add QPDFObjectHandle::mergeDictionary()Jay Berkenbilt
2019-01-01Add matrix and annotation appearance stream handlingJay Berkenbilt
Generate page content fragment for rendering appearance streams including all matrix calculation.
2019-01-01Add Matrix class under QPDFObjectHandleJay Berkenbilt
2019-01-01Transformation matrixJay Berkenbilt
2018-12-25JSON::serialize -> unparseJay Berkenbilt
Unparse is admittedly strange, but I'd rather be strange and consistent, and everything else in the qpdf library uses unparse to serialize. (If you're reading this, the convention of using "unparse" comes from the "clu" programming language.)
2018-12-23TODOJay Berkenbilt
2018-12-23Don't crash on @file when file doesn't exist (fixes #265)Jay Berkenbilt
When @file is used and file doesn't exist, just treat it as a normal argument.
2018-12-23Add json testsJay Berkenbilt
2018-12-23Support zsh completionJay Berkenbilt
2018-12-23Add comment about json to pdf-bookmarksJay Berkenbilt
2018-12-23Add page position information to jsonJay Berkenbilt
2018-12-23Slightly improve bash completion arg parsingJay Berkenbilt
2018-12-23Document new and missing command-line optionsJay Berkenbilt
2018-12-22Document json supportJay Berkenbilt
2018-12-22Add colorspace and depth information in json for imagesJay Berkenbilt
2018-12-22Add outlines to json at document levelJay Berkenbilt
2018-12-22Implement --json-objectsJay Berkenbilt