RealObjects PDFreactor®
Version 10.1.10722.10, 2020-01-21
Release History
10.1.10722.10 Release of PDFreactor 10
The bug fixes include:
- Web fonts in low memory environments no longer cause exceptions. (#7940)
- Synthetic bold is no longer applied to fonts that are bold according to their PANOSE weight. (#7930)
- Palette-based PNG images can now be converted to CMYK. (#7933)
- Flex items are no longer aligned incorrectly in certain nested layouts. (#7672, #7931)
- Event propagation now also includes "window" on capture and bubble as well as the actual event target on capture. (#7879)
- Arrays from "Promise" methods now have all array methods.
10.1.10722.9 Release of PDFreactor 10
The bug fixes include:
- PDFs used as repeated background images no longer overflow their elements. (#7926)
- The contents of PDFs used as images are no longer erroneously offset when their media box is not placed at the point of origin. (#7919)
- The PDFreactor OSGi bundle now supports all classes that are part of the public API. (#7925)
10.1.10722.8 Release of PDFreactor 10
The bug fixes include:
- Security fixes for SVG parsing. (#7915, #7914)
- Complex flex layouts no longer cause conversions to terminate with exceptions in some cases. (#7894)
- Converting multiple asset packages in parallel no longer causes exceptions in rare cases. (#7918)
- Performance fixes for Leaflet, Plotly.js and other JavaScript libraries creating complex SVGs. (#7908)
- Collapsed through elements no longer erroneously affect page breaks in certain cases. (#7898)
- PDFs embedded into other PDFs, e.g. via "img" elements or CSS backgrounds, now have their fill color reset to black, avoiding missing graphical objects in rare cases. (#7906)
10.1.10722.7 Release of PDFreactor 10
The bug fixes include:
- Due to the following JavaScript improvements, plotly.js is now supported when applying this user-script: (#6115)
function Blob() { }; window.URL = { createObjectURL: function() { return ''; } };
- Nodes of documents from "XMLHttpRequest" or "DOMParser" can now be inserted into the main document.
- Calling "toString()" with "null" as the "this" object now produces the correct string.
- Improved JavaScript access to SVG DOM, including node properties and rectangles.
- Added the "assign()" function to the "Object" JavaScript top-level object.
- Improved support for React, via the following JavaScript improvements:
- "DOMContentLoaded" event now bubbles to "window".
- XML in JavaScript content no longer causes exceptions.
- "insert()" and "delete()" on CSS rule lists now throw the correct JavaScript exceptions when the index is out of bounds. (#7854)
- The proprietary line descriptions are now also available for inline-block elements directly containing text content. (#7858)
- "max-width" of images in flex contexts is now applied correctly. (#7856)
- Corrected certain cases affecting percentage-based dimensions of nested flex items. (#7864)
- Running elements no longer influence the previous page in rare cases. (#7870)
- Specific complex layouts no longer cause unexpected page breaks. (#7850)
- Forced break styles on table headers or footers no longer cause exceptions. (#7880)
- The URLs of PDF documents to be merged can now be relative, also allowing the PDFs to be part of asset packages. (#7865)
- The configuration property "customDocumentProperties" now works as intended. (#7893)
10.1.10722.6 Release of PDFreactor 10
The bug fixes include:
- Color space conversion no longer fails for certain PNG images. (#7819)
- Image recompression and resampling no longer fail for images with large dimensions. (#7817)
- Elements with non-visible overflow and auto height no longer prevent their content from creating named pages. (#7646, #7694)
- The API property "JavaScriptSettings.maxTasksWithoutDomChange" is applied correctly again. (#7841)
- Resources from file URLs containing fragments no longer cause exceptions. (#7812)
- Data URIs containing consecutive white-spaces are processed correctly again. (#7800)
- Footnotes created by the content of flex items are now displayed correctly. (#7840)
10.1.10722.5 Release of PDFreactor 10
The new features and improvements include:
- SVG elements with the same color for stroke and fill are now optimized to avoid visual issues in PDF viewers.
Most noticeably MathJax equations no longer look too bold in PDFs, especially when zoomed out. (#7740)
The bug fixes include:
- Some combinations of "cHRM" and "gAMA" headers in PNG images embedded into PDFs no longer cause incorrect visual results. (#7796)
- Certain cases of complex tables no longer cause exceptions. (#7786, #7787)
10.1.10722.4 Release of PDFreactor 10
The new features and improvements include:
- The CSS properties "overflow-wrap" and "word-wrap" now support the value "anywhere" which has the same effect as "break-word"
but also influences layouts that depend on the minimum sizes of elements. (#7620)
The bug fixes include:
- Solved various "MathJax" related issues, by correcting the insertion of block elements into inline parents. (#7541, #7739, #7749, #7750, #7751)
- Solved JavaScript SyntaxErrors when using "Vue.js", by no longer passing 'strict' mode into "new Function()" executions. (#6559)
- Added support for "Chart.js" 2.0, by correcting "toString" edge cases. (#5969)
- Using "MathJax" in certain complex layouts no longer causes non-terminating exceptions. (#7770)
- Corrected certain edge cases when references to JavaScript functions are called. (#7767)
- Color space conversion to CMYK now works correctly for all image types. (#7745)
- Certain complex layouts no longer cause exceptions. (#7752, #7763, #7771, #7772)
- PDFreactor Web Service server parameters can now properly be set as environment variables. (#7778)
10.1.10722.3 Release of PDFreactor 10
The new features and improvements include:
- Introduced the proprietary CSS property '-ro-source-area' which specifies the PDF page box used when embedding PDF documents as images. (#7713)
The bug fixes include:
- When using PDF documents as images some edge cases no longer cause incorrect results. (#7705, #7415)
- The 'location' object in JavaScript is now correctly converted to string, solving a MathJax issue. (#7730)
- MathJax as well as some complex SVGs no longer fail in some cases when the base URL differs from the document URL or when there is neither a base URL nor a document URL. (#7744)
- User style sheets with BOMs are now processed correctly in all cases. (#7076)
- Certain complex flex layouts no longer cause exceptions. (#7652)
- Block images with generated '::before' content no longer break conversions. (#7738)
- Named pages are now processed correctly when there are positioned elements at the beginning. (#7724)
- The property '-ro-pdf-attachment-url' now works correctly, for both string and URL values, when CSS validation is enabled. (#7597)
10.1.10722.2 Release of PDFreactor 10
The bug fixes include:
- PDF tagging no longer causes exceptions. (#7604)
- Tables with combinations of empty or missing "col" and "tbody" elements, tables in certain combinations with flex containers and other constructs no longer break conversions. (#7581, #7645, #7680)
- "inline-block", "inline-table" and "inline-flex" elements no longer overflow lines unnecessarily and no longer erroneously interact with BiDi. (#7565, #7630)
- The dimensions of "inline-block" elements with "min-width" or "min-height" are now determined correctly. (#7632)
- Percentage widths inside cells of auto layout tables are now resolved correctly. (#7719)
- Width of flex containers is no longer incorrect in certain complex scenarios. (#7653)
- Named pages in certain documents no longer cause incorrect page breaks. (#7606)
- The selector specificity of "-ro-nth" in combination with a page group is now higher than that of just a page group. (#7640)
- The "extensible" JavaScript property no longer erroneously disallows the modification of existing properties in strict mode. This issue broke support for the library "React". (#7636)
- Low level style sheet manipulation from JavaScript now works correctly for more edge cases. (#7629)
- Improved exception handling during JavaScript debugging.
- The dimensions for "-ro-link-area: block" and similar styles as well as "offsetWidth" and similar element properties are now correctly determined in all situations. (#7664, #7681)
- Large data URIs in "src" attributes are no longer erroneously blocked. (#7723)
- The pages counter no longer has incorrect values in certain documents. (#7603, #7722)
- Corrected footnote positioning in documents using "-ro-scale-content". (#7591)
- Footnote markers inside the text of multi-column content no longer disappear in some cases. (#7575)
10.1.10722.1 Release of PDFreactor 10
The bug fixes include:
- URLs with custom protocols no longer cause exceptions when using a matching CustomUrlStreamHandler. (#7712)
- Fixed 'defineProperty' related issue that broke jQuery setting listeners on 'window'. (#7711)
- XMLHttpRequest now properly handles encodings, incl. byte order marks (BOM), and document types. (#7718)
- Converting Asset Packages no longer returns an error. (#7721)
10.1.10722 Release of PDFreactor 10
The changes include:
- Please refer to the migration guide for more information as these changes might impact existing integrations.
- Enhanced security to protect against potentially malicious 3rd party content or configurations, especially regarding file system access and server side request forgery.
The stricter default settings may cause resources to no longer be reachable unless the configuration is amended. (#5966, #7660)
- CVE-2019-12153: by Sean Melia of Aon’s Cyber Solutions
- Loading of XML external entities and other XML parser resources is now configurable and disabled by default. (#7675)
- CVE-2019-12154: by Sean Melia of Aon’s Cyber Solutions
- JREs packaged with installers or containers have been updated to OpenJDK 12.0.1. (#7686)
The bug fixes include:
- Footnotes are no longer horizontally misaligned in rare cases. (#7588)
- Images with a max-width value no longer lead to content overflowing paragraph. (#7595)
- Documents containing large amounts of SVGs no longer cause non-terminating conversions in rare cases. (#7685)
- JavaScript inserting 'div' elements into 'span' elements no longer causes exceptions in specific cases. (#7702)
- Certain cases of single-line row flex containers no longer cause non-terminating layouts. (#7699)
- JavaScript processing is no longer aborted when BoxDescription arrays are accessed with invalid indices. (#7692)
The new features and improvements include:
- Improved logging of connections in JavaScript and iframes.
10.0.10722.3 Release of PDFreactor 10
The bug fixes include:
- Page breaks no longer happen between positioned first child elements and their next normal flow sibling. (#7611)
- Inline-block elements with a specified width no longer cause incorrect widths for surrounding tables. (#7614)
- Percentage values as parameters of "rgb" functions in SVG are handled correctly again. (#7626)
- Certain combinations of target counters and targets no longer cause missing values when segmentation is enabled. (#7602)
- Adding multi-column structures via JavaScript no longer causes exceptions. (#7569)
- The JavaScript functions "prompt", "confirm" and "alert" no longer cause exceptions. (#7576)
- Using asset packages in evaluation mode no longer breaks conversions. (#7583)
- Logs appended to output PDFs again have correct timestamps. (#7592)
10.0.10722.2 Release of PDFreactor 10
The bug fixes include:
- Target-counter and target-text functionality now works correctly when segmentation is enabled. (#7552)
- Complex collapsed tables no longer cause exceptions in rare cases. (#7554)
- Dithering translucency for PDF/A-1 conformance now works independent of image type. (#7551)
- Specific combinations of tables and overflow styles no longer cause exceptions when PDF tagging is enabled. (#7561)
- Headings spanning multiple pages no longer cause exceptions when PDF tagging is enabled. (#7556)
- JavaScript modifications of documents with counters in the contents of "XHTML" CSS functions no longer cause exceptions. (#7540)
- "Save Memory" mode now works correctly for all supported image formats. (#7560)
- "BoxDescription.columnIndex" is now computed correctly in all cases. (#7542)
- Python and CLI Wrappers are now compatible with Python 3. (#7559)
10.0.10722.1 Release of PDFreactor 10
The bug fixes include:
- Synthetic italic is applied again. (#7532)
- Empty inline elements no longer prevent their parents from collapsing through. (#7531)
- The dimensions of multi-page collapsed tables with varying border widths are now determined correctly. (#7110)
10.0.10722 Release of PDFreactor 10
The bug fixes include:
- Hyphenation no longer causes erroneous text sizes when using Java 11. (#7526)
- Corrected static position of certain absolutely positioned elements. (#7511)
- Fixed a rare exception what could lead to seemingly non-terminating conversions. (#7521)
10.0.10702 Release of PDFreactor 10
Important:
- PDFreactor Web Service users: Please refer to the migration guide before updating to PDFreactor 10, as the installation process may overwrite settings.
The new features and improvements include:
- Implemented segmentation functionality to significantly reduce the memory consumption of conversions of large documents. (#7082)
- Added alternative table implementation that drastically reduces the amount of time and memory required to convert large uniform tables. (#7234)
- Significantly reduced impact on performance of large style sheets. (#7224, #7453)
- Added optional color space conversion for CSS colors and images via the API setting "ColorSpaceSettings". (#6327, #6868)
- Image embedding and decoding can now handle more subformats and special cases. (#7001, #7007, #7032, #7085, #7093, #7134)
- Image recompression can now output JPEG without eliminating transparency. (#5997, #7180)
- Added support for typographic font families, including the CSS property "font-stretch" and numerical "font-weight" values. (#6086, #6090, #7078)
- JavaScript now has optional settings that log different amounts of debug information.
- JavaScript now supports "Intl.NumberFormat" and "Intl.DateTimeFormat" objects as well as "toLocaleString()" functions. (#7071)
- Added support for CSS page groups, incl. the ability to e.g. select the first pages of chapters. (#7124, #7125)
- Added support for the "clip" value of the "overflow" property, which hides the overflow, but allows "baseline" alignment, e.g. for inline-block boxes.
- Implemented the CSS property "text-align-all" and adjusted "text-align" and "text-align-last" accordingly, making "text-align" a shorthand. (#7228)
- Added support for optional validation of created PDF/A documents. (#6911)
- Added support for JavaScript DOM property "innerText" and methods "before", "after", "replaceWith", "prepend", "append" and "remove". (#7147, #7411, #7416)
- The proprietary JavaScript BoxDescription objects now contain information about in which column or region, if any, a box is laid out. (#7341)
- "-ro-object-slice" now has a new value "avoid" which causes only images to be sliced that do not fit on the next page.
In addition sliced images now respect "widows" and "orphans" to define areas at their start and end in which not to slice. (#7270)
- Added support for new (prefixed) relative length units:
- "-ro-lh": line height, similar to "em".
- "-ro-rlh": root line height, similar to "rem".
- "-ro-cap": capital letter height, similar to "ex".
- "-ro-ic": width of U+6C34, similar to "ch".
- Logical CSS properties and values are now available without prefix. (#7403)
- Added support for advanced box alignment via the properties "align-self", "align-items", "align-content", "justify-self" and "justify-items" as well as the shorthands "place-self", "place-items" and"place-content". (#6409)
- Completely revised flex-box layout, resulting in significantly improved standard compliance and browser-like behavior
as well as better handling of many edge-cases and pagination. (#6853, #6854, #6940, #6975, #6976, #6983, #6984, #7166, #7272, #7350, #7520)
- Significantly improved behavior in various edge cases based on official tests, including "Acid2" which PDFreactor now passes at default settings. (#7242)
- Conversions can now be terminated from within JavaScript, including user scripts. (#7121)
- JavaScript wrapper now includes methods that return the document as a Blob. (#7238)
- Various improvements to logging. (#7249, #7410)
- CSS filter functions now support various numbers of parameters, e.g. "blur" with two parameters or "grayscale" with none. (#7187)
- It is now possible to set and retrieve sticky cookies for conversions using the PDFreactor Web Service via the wrapper APIs. (#7036)
- Improved configuration options for PDFreactor Docker containers. (#7136)
- PDFreactor can now dump the input document and all resources to a specified directory in case of an exception. (#7162)
- PDFreactor Web Service logs now contain the date. (#7179)
- CSS errors and JavaScript output are now logged into separate CSS and JavaScript logs, respectively.
They are accessible in the "log" property of the "Result" and "Progress" objects.
- It is now possible to specify a separate connect and read timeout for resource requests during the conversion
via the configuration properties "resourceConnectTimeout" and "resourceReadTimeout", respectively. (#7357)
- Debug mode behavior is now configurable so that certain features can be enabled or disabled for particular use cases.
- Improved error messages when using the PDFreactor Web Service client wrapper API methods "getStatus" and "getVersion". (#7374)
- The included Jetty has been updated to version 9.4.8.v20171121. (#7175)
- The PDFreactor Java wrapper now supports compact1 profile (or higher) VMs. (#7083)
- The Corporate Invoice sample now uses AngularJS and "NumberFormat". (#7084)
- Updated i18n support to Unicode 11
- Improved documentation. (#7073, #7164, #7494)
The changes include:
- Please also see the migration guide.
- Removed support for Java 6 and added support for Java 11. The supported Java versions of the PDFreactor library are now 7, 8 and 11. (#7054)
- PDFreactor now uses float precision internally, improving layout precision and in many cases enhancing space efficiency. (#7095)
- CSS value validation is now enabled by default, resulting in standard compliant and browser like handling of illegal values. (#5977, #6541)
- The JavaScript modes have been replaced by a singular new mode with some settings and compatibility with various JavaScript libraries has improved. (#7158)
- MathML support has been removed from core functionality in favor of the JavaScript library "MathJax", which provides significantly
better looking results and is actively maintained (SVG output only, see the manual for an easy to use user script). (#5939, #6102, #6131)
- Image transparency is no longer removed entirely for conformances that forbid it, but replaced by a dithered approximation. (#7309)
- Changed the way non-interactive form fields are created, and updated their default styles,
providing a smoother and more consistent integration with the rest of the document.
It also solves issues that certain styles did not affect form elements. (#6952, #7200)
- The following functionalities are now doctype dependent, unless overridden in the API:
- Paragraph line-height being used as minimum line-height for all its lines. (#5488, #7242)
- CSS class selectors being handled case-sensitively. (#7456)
- Named-string CSS syntax and behavior have been updated. (#7349)
- New default fonts have been added for the generic font families "cursive" and "fantasy".
The generic font family "system-ui" is now supported as a fixed mapping to "sans-serif". (#7409)
- Common font directories are now also searched in Linux environments, unless the use of system fonts is disabled. (#7371)
- The installer will no longer overwrite the Log On name of the Windows service.
It will, however, set the recovery options to 'restart the service'. (#7375)
- Rectangles returned by proprietary "BoxDescription" JavaScript objects now always contain float values. (#7342)
- (non-web service) Java API methods no longer throw exceptions of type
IOException, SAXException, TransformerException.
These are instead available as cause of a PDFreactorException.
- JavaScript wrapper API methods now return Promises instead of using callback parameters.
- Some classes and properties of the Java and .NET wrappers were changed. Please refer to the migration guide for more information.
- The PDFreactor configuration property "enableDebugMode" is deprecated in favor of "debugSettings" of type "DebugSettings".
- Improved logging when using the "signPDF" configuration option. Exceptions that occur during signing now cause the conversion to be aborted. (#7063)
- Removed verbose CSS error messages from the main log. They are still available in the new CSS log.
The bug fixes include:
- Rasterized content, e.g. shadows and filters, is now CMYK, if that is the target color space, so it no longer breaks CMYK PDF/A documents. (#7294, #7490)
- Space freed by the application of "box-decoration-break: slice" is now consistently taken into account for layout. (#7005, #7104, #7455)
- Superfluous line-breaks no longer occur in special cases. (#7452, #7496)
- Alignment of table cell content is now correct in special cases. (#7149, #7365)
- Table structures are now properly corrected in more special cases. (#7420, #7024)
- The behavior of floats in various special cases has been improved significantly. (#6922, #7414, #7471, #7480, #7485)
- Multi-column layout now properly handles complexly nested content with large values for margin-bottom. (#7479)
- Footnote calls are now properly disabled when their content is set to 'none' or to an empty string. (#6910)
- JavaScript DOM manipulation no longer breaks named strings. (#7467)
- Images with a max-width (and no specified width) are now laid out correctly inside inline-blocks. (#7444)
- Absolute positioning no longer ignores padding of containing block. (#7483)
- "navigator.userAgent" and "navigator.appVersion" are now more browser like. (#7429)
- Various JavaScript DOM methods are now more robust against bad parameters. (#7417)
- CSS "calc" functions can now be nested. (#7449)
- Eliminated SVG specific limitations, enabling spot colors and CSS variables. (#7042, #7112)
- The "uri" property of user style sheets and user scripts is no longer ignored if they also have "content" set. (#7462)
- Automatic redirects now also work if the location is relative. (#7461)
- White spaces in the "data" attribute of "object" elements no longer cause the resource to not be loaded. (#7418)
- Setting or getting the "innerHTML" or "outerHTML" DOM properties via JavaScript now properly handles HTML and XML specific behavior. (#7060, #7190)
- The layout is no longer incorrect for specific constructs. (#7323, #7329, #7363)
- Interactive form fields and full compression are no longer unnecessarily forbidden in all conformance modes. (#7330, #7333)
- Some specific documents no longer cause exceptions or break the resulting PDF documents. (#6139, #7334, #7335, #7337, #7351)
- Improved error handling when using the "convertAsBinary" API method. (#7336)
- CSS validation no longer removes some of the valid values of the "columns" property. (#7339)
- SVG "use" elements can now address nested "svg" elements. (#7352)
- XMLHttpRequests using POST or PUT now work correctly when the "connections" content observer is enabled, including debug mode. (#7358)
- All wrappers can now handle trailing slashes in web service URLs. (#7364)
- The progress of web service conversions can now be retrieved consistently. (#7372)
- Synthetic bold functionality no longer needlessly affects fonts with inconsistent metadata. (#7321)
- SVG background images are no longer scaled or positioned incorrectly in rare cases. (#7245)
- "-ro-scale-content" no longer affects named strings in rare cases. (#7183)
- Specific cases no longer cause exceptions. (#7196, #7248, #7282, #7230)
- Complex named page cases no longer break layouts or cause exceptions. (#6993, #7152, #7237, #7322)
- Page break avoiding styles now properly affect tables and table rows. (#6537, #7269)
- Page break behavior is now more consistent in special cases. (#7355, #7455, #7498)
- Tables and flex containers no longer cause unexpected page break behaviors. (#5800, #6740, #7188, #7283)
- Combination of repeating table headers and :first-letter styles no longer creates superfluous letters. (#7378)
- Specific scenarios no longer cause incorrect width computation and subsequent issues. (#6797, #6981, #7150, #7231)
- Complex scenarios no longer cause incorrect positioning of absolute positioned elements. (#7201)
- Line break behavior now properly interacts with inline-blocks. (#7261, #7318)
- CSS parser and validation now properly reject semicolons between rules and non-zero numbers as lengths, respectively.
- Improved syntactical robustness of the CSS "calc" function. This includes support for CSS variables. (#7081, #7140, #7143)
- Fixed layout relevant effects of the CSS property "overflow", including support for "overflow-x" and "overflow-y". (#7194)
- "vertical-align: baseline" for inline blocks with "non-visible" overflow now aligns properly. (#7155)
- The content of inline elements (e.g. inline-block) is no longer erroneously affected by margin truncation at page breaks. (#7156)
- The DOM functions "insertCell" and "insertRow" available in JavaScript now behave correctly with no parameter. (#7122)
- ExceedingContents content observer now functions correctly with debug mode enabled. (#7130)
- ExceedingContents analyze option "CONTENT_AND_STATIC_BOXES" now works as intended. (#7132)
- Resource URLs that contain illegal characters no longer cause invalid debug data. (#7198)
- Fixed exceptions when regions cause a page break. (#6488)
- Absolutely positioned page margin boxes are no longer erroneously affected by bleed or media sizes. (#7202)
- Tables affected by floats are now sized and positioned correctly. (#7169)
- Fixed non-terminating JavaScript in a specific "iframe". (#7170)
- Box shadow now works for inline elements spanning multiple lines. (#7061)
- Content following a CSS leader was placed slightly too far to the left. (#7111)
- Fixed font fallback issue causing missing non-breaking hyphens in rare cases. (#6989)
- The effect of "break-after: avoid" and "break-before: avoid" now extends past neighboring elements that are "collapsed through". (#7115)