🛠 Fix: Fix NilError when calling
fontsfor a page that has no fonts. Credit to Pavel Slabý (@paulslaby) for PR#110.
🛠 Fix: Fix issue #109 where nested differences between objects weren't detected properly, causing loss of data if objects (specifically images that use image masks) would merge. The fix implements a manual equality checks with up to three (3) levels of recursion, protecting against stack overflow that can be caused by the combinations of complex PDF files and Ruby's limitless recursion on
eql?. Credit to Ryan Scott (@Subtletree) exposing the issue.
Compatibility: Some PDF authoring systems (namely the "Microsoft Reporting Services") produce a non-standard extra white-space after the keyword
stream. This update should provide a compatibility fix for these occurences. Credit to @ilasorsa for exposing the issue.
🛠 Fix: Fixed a possible issue with string corruption... it might have only existed in the development version, I'm not sure, but it's fixed anyway.
🛠 Fix (degrade): Fixed an issue related to deeply nested objects causing unreasonable slowdowns. The issue was resolved by degrading the PDF optimization process to review object with
streamdata instead of reviewing every object. This means more duplicate objects might be observed when similar PDF files are merged.
🛠 Fix: Fixed an issue related to form data where font information was lost during the PDF optimization process.
🛠 Fix: Fixed issue #108 by adding support for PDFs that have spaces and missing zeros in their hex encoded strings. Credit to @emmanuelmillionaer.
🛠 Fix: Fixed
:yto allow for non-zero/cropped page origin. Credit to @donnguyen for exposing the issue.
🛠 Fix: Fix typo on Parser error message for general parser error. Credit to @axlekb.
🛠 Fix: Fix for issue #104. Credit to @tomascharad for exposing the issue.
🚀 Release: This gem had been using a development versioning scheme for far too long. The API is stable enough to switch to a production versioning scheme. This version is expected to be the last 0.x version. Assuming this version will be stable enough, it is expected to be re-released as v.1.0.
⚡️ Update: Updated / upgraded our RC4 and AES PDF encryption support (for non-password protected PDFs). Credit to Gyuchang Jun (@gyuchang) for his work on providing CombinePDF with this extra encryption support. I have no idea what magic he used to make this happen, but it's beautiful!
⚡️ Update: Extended "named tree" support now preserves some advanced PDF feature that weren't supported before.
🗄 Deprecation: Ruby is deprecating
Fixnum, as so is CombinePDF... replaced all
⚡️ Update: Better errors when encryption related exceptions occur. Credit to Paul Shumeika ( @pshumeika ).
🛠 Fix: Fixed an issue where empty pages with NULL contents value would cause CombinePDF to raise an exception when rendering. Credit to @holtmaat and Jason DeLeon (@progmem) (both in submitted different PRs regarding the issue).
Broke: Broke the fix for issue #65 so that Radio buttons data might be lost... working on a fix.
🛠 Fix: Fixed issue #82 (reintroduction of issue #19 due to core engine rewrite) related to a workaround for an issue with AcrobatReader. Credit to @gyuchang for testing and helping with the fix.
🔀 Merge: Merged pull request #80, fixing an issue with byte decoding. Credit to @gyuchang for the PR.
🐎 Performance: Improved performance for the reference and duplicate object resolution. Credit to @gyuchang for pointing some optimization options.