================================ PDFlib 9.2.0 (February 06, 2019) ================================ - 2019-02-06 (bug #6341) Fixed warnings generated about variables being clobbered by 'longjmp' or 'vfork' when compiling the C++ binding with g++. - 2019-02-05 (bug #6340) Added exception handling for non-PDFlib exceptions to all C++ samples. - 2019-02-04 (bug #6240) Some sample programs contained "errorpolicy=exception" in PDFlib API calls where the actual intention was to specify "errorpolicy=return" to override the globally set option "errorpolicy=exception". - 2019-02-04 (bug #6338) After the fix for bug #6141 the symptoms of bug #6011 had reappeared. - 2019-02-04 (bug #6339) When using the "gstate" option of PDF_fit_image() the "cm" operator for setting the current transformation matrix for the XObject was written before the "gs" operator for setting the parameters from the specified graphics state parameter dictionary. This only was a problem when the graphics state parameter dictionary contained a luminosity softmask as its geometry did not match the geometry of the XObject then. The order of the "cm" and "gs" operators is now reversed by the fix. - 2019-02-04 (feature #2440, feature #2460) Modified the PDFlib Mini Edition configuration to further reduce its memory requirements. Among other changes, support for OpenType CFF fonts has been enabled, while support for PostScript Type 1 fonts, built-in encodings, internal glyph name tables and runtime logging has been disabled. - 2019-01-30 (feature #2451) Improvements for Tagged PDF and PDF/UA import: - Improved the checks for invalid Hx header hierarchies when importing PDF/UA. - The additional PlibASpan tag which is inserted by PDFlib when importing Tagged PDF pages was not correctly taken into account by the "fittingpossible" test. - When importing a page with a direct Note, Span, Quote element (formerly incorrectly called "inline" element) as top-level element, the tag was wrongly treated as "direct" and rejected by the nesting check. - 2019-01-30 (bug #6334) Glyphs from symbol fonts can be addressed with standard Unicode values if they have standard glyph names according to the Adobe Glyph List with a Unicode mapping. After the fix for bug #6011 these glyphs could only be addressed via PUA values. - 2019-01-30 (bug #6333) On Windows platforms the logging for logging class "image=5" could produce the unexpected log message "Unknown printf format '%I64u'" when processing damaged TIFF images. - 2019-01-29 (feature #2421) As a consequence of feature #2218 the shipping data files in all PDFlib packages are reduced significantly in file size and count. - 2019-01-29 (feature #2418) Modernized the supplied programming samples for all supported development environments. This included removal of deprecated samples and highly specialized aspects (e.g. SING fonts), replacement of old-style API usage and introduction of convenience features. All external font files have been switched to the NotoSerif font family. - 2019-01-29 (feature #2214) Switched the Android builds to SDK 28.0.3 and a newer build environment. The binaries now support ARM 32-bit and 64-bit as well as x86 which is relevant for the emulator. - 2019-01-24 (feature #2459) Removed unneeded features from the libtiff configuration. - 2019-01-24 (bug #5484) In the IBM iSeries RPG binding the buffer size was increased for the "text" parameter of the following functions: - PDF_add_table_cell() - PDF_add_textflow() - PDF_create_textflow() - PDF_fill_textblock() The buffer size for the return value of PDF_convert_to_unicode() was also increased. - 2019-01-24 (feature #2458) Consolidated the use of common XObject options in PDF_load_image(), PDF_load_graphics(), PDF_open_pdi_page(), and PDF_begin_template_ext() to ensure that all options are supported by all functions where they make sense. - 2019-01-21 (bug #6328) The PDFlib PHP module could not be loaded with PHP 7.3 Windows 64-bit (ZTS). - 2019-01-15 (feature #2431) Recognize the font file name suffixes *.otc and *.OTC for OpenType CFF font collections. (Since OTC fonts are identical to TTC they were already supported, only the suffix detection is new). - 2019-01-15 (bug #6327) Building PDFlib from source without PDF_FEATURE_LOGGING defined could cause massive heap memory usage. - 2019-01-14 (feature #2432) Un-deprecate the "Sect" and "NonStruct" structure elements in anticipation of pending changes for the PDF 2.0 dated revision ISO 32000-2:2019. - 2019-01-14 (feature #2455) Work around the possible user error of forgetting the "mask" option for 1-bit images which are later used with the "masked" option of another image. PDFlib now emits /SMask instead of /Mask also for the 1-bit case unless prohibited by PDF/A-1 or PDF/X-1/3 standards requirements. - 2019-01-14 (feature #2445) Implemented stricter checks for the "id" option of the "Note" element to ensure PDF/UA-1 conformance. ID attributes of regular (but not direct) "Note" structure elements in imported documents are made unique by adding a suffix if required. - 2019-01-14 (feature #2315) Implemented the tagging option "direct" as successor of the deprecated "inline" option to fix an unfortunate historical naming conflict in the API and Tutorial. - 2019-01-08 (bug #6314) To work around an unjustified error message in Acrobat about a missing font PDFlib now forces embedding of a CID font also under the following conditions: - Only text with "textrendering=3" (invisible) was produced with the font. - PDF_load_font() was invoked with option "optimizeinvisible=true". - 2019-01-02 (feature #2452) The tagging options "inline" and "direct" are now allowed for the "Lbl" element if used as child of BibEntry, TOCI or Note to match its use in PDF 2.0. - 2019-01-02 (feature #2447) PDF_create_annotation() didn't enforce the PDF/UA-1 tag nesting rules for Link and non-Popup annotations. - 2018-12-31 (feature #2438) Tagged PDF import: many real-world documents contain invalid trailing null bytes in the Alt or Lang attribute strings. These have previously been represented as U+FFFD REPLACEMENT CHARACTER in the output. However, Acrobat displays U+FFFD as a garbage character (unlike a null byte which is silently ignored). PDI now removes the incorrect trailing null bytes. - 2018-12-31 (bug #6294/REOPENED) The fix for preserving empty table tags didn't work if the PDI document was opened in document scope. - 2018-12-31 (bug #6315) XMP parser: namespace declarations in the "rdf:RDF" node were not read correctly (as opposed to the more common use in "rdf:Description"). As a consequence of this bug PDF/X standard identification with pCOS didn't work correctly for some documents. - 2018-12-21 (feature #2435) Adjusted the COM installer and samples to use the same directory structure and searchpath as the other packages. - 2018-12-20 (bug #6309) Adjust the BBox attribute of structure elements of imported Tagged PDF pages to the new location on the page. - 2018-12-20 (feature #2441) Add @Deprecated annotations (in addition to the existing @deprecated Javadoc comments) to the Java wrapper. This raises the minimum required Java version to 1.5. - 2018-12-17 (bug #6311) A layer construct created by InDesign could cause PDF_open_pdi_page() to fail with "Illegal array index XXX in function pdc__vtr_at" when importing a page with uselayers=true. - 2018-12-12 (bug #6305) Fixed a use-after-free that occurred with fonts with fallback fonts being loaded in object scope. - 2018-12-12 (bug #6300) PDF_info_text() with keyword "missingglyphs" could return incorrect results if Unicode control characters or glyphs from fallback fonts were present in the text. - 2018-12-12 (bug #6299) PDFlib created unnecessary ActualText if the application of OpenType features changed glyphs and the Unicode mapping of the resulting glyphs did not change compared to the original glyphs. - 2018-12-12 (bug #6298) PDF_fit_textline() option "justifymethod=wordspacing" did not create justified text output when glyphs from a fallback font or Unicode control characters were present in the text. - 2018-12-12 (bug #6297) PDF_fit_textline() option "justifymethod=wordspacing" did not create justified text output when glyphs from a fallback font or Unicode control characters were present in the text. - 2018-12-12 (bug #6296) Kerning didn't work for glyphs taken from a fallback font. - 2018-12-12 (bug #6295) Using Unicode control characters like ZERO WIDTH NON-JOINER could prevent the application of OpenType features to glyphs near the character. - 2018-12-12 (bug #6293) Some OpenType features didn't work for glyphs taken from a fallback font. - 2018-12-12 (bug #6285) Using Unicode characters like NO-BREAK SPACE or NARROW NO-BREAK SPACE in textflow could result in insertion of arbitrary glyphs into the text if the line-breaking algorithm had to insert a line break near the character. - 2018-12-10 (feature #2400) Eliminated the font error "Fallback fonts are not possible" when the option "fallbackfonts" was applied to an OpenType font with the maximum number of glyphs (65536 for TT outlines, 65535 for CFF outlines). In the course of rewriting the affected code a number of text- and font-related bugs (mostly related to the use of fallback fonts) were detected and fixed which could happen for smaller fonts as well. - 2018-12-10 (feature #2429) Updated the installers for the .NET Classic and COM packages. =================================== PDFlib 9.1.2p10 (December 04, 2018) =================================== - 2018-12-04 (feature #2433) The "lang" option of PDF_begin_document() is now required in PDF/UA-1 mode. This is necessary because the natural language for some items cannot be declared otherwise, including the required dc:title XMP property. This also fixes some PAC validation problems with missing language identification of bookmarks, form fields and annotations. - 2018-12-04 (bug #6292) On z/OS the C++ example programs were not compiled with the necessary compiler option 'CONVLIT(,UNICODE)' for encoding wide-character literals as UTF-16. This resulted in the unexpected error message "Option 'outputformat' has bad keyword 'ebcdicutf8'" when executing any of the example programs. - 2018-12-04 (bug #6294) Refined the fix for bug #6134 since empty table elements could still be dropped when importing a page with tags. If an imported TD element contained an empty P element, not only the empty P was removed but also the containing TD, resulting in a damaged table structure. Similar logic has been implemented for Lbl and LBody list elements. Note that while empty elements are allowed in PDF/UA-1 this practice is not recommended. - 2018-11-21 (bug #6290) Added a heuristic to PDI for malformed xref sections which don't take the first entry (start of the free list) into account, i.e. counting from 1 instead of from 0. - 2018-11-21 (bug #6289) In textflows OpenType features were disabled for the base font when glyphs from a fallback font were used as well. - 2018-11-21 (bug #6287) Using OpenType features in connection with fallback fonts could result in truncated text or in the incorrect error message "Option 'fontsize' has bad value 0". ================================== PDFlib 9.1.2p9 (November 15, 2018) ================================== - 2018-11-15 (bug #6277) On Alpine Linux the .NET Core binding failed with the error message "System.DllNotFoundException: Unable to load shared library 'PDFlib_dotnetcore_native' or one of its dependencies". - 2018-11-13 (feature #2384) Added support for PHP 7.3. - 2018-11-09 (bug #6278) When colorizing PNG images containing a tRNS chunk with a bit depth other than eight an incorrect color key mask array was produced. - 2018-11-09 (bug #6276) PDFlib did not accept i5 license keys for AIX binaries used in the IBM i5 PASE environment. - 2018-11-08 (feature #2337) Implemented the "chromakey" option for PDF_load_image(). ================================== PDFlib 9.1.2p8 (November 06, 2018) ================================== - 2018-11-05 (feature #2336) Implemented the "decode" option for PDF_load_image(). - 2018-11-05 (feature #2051) Added support for .NET Core. - 2018-11-05 (bug #6270) Added 32-bit builds with 64-bit integer support (compiled with "-Duse64bitint") for the Perl 5.24, 5.26 and 5.28 bindings. - 2018-10-29 (bug #6188) Fixed several places where a single-byte string could be mistaken to be a UTF-16 string. - 2018-10-29 (bug #6260) Bidi symmetrical swapping did not work as expected for fallback fonts with shaping. - 2018-10-26 (bug #6198) PDF_fill_graphicsblock() failed with an unjustified "Unknown option" error message if the option list started with an UTF-8 BOM in non-Unicode-capable bindings or if the option list contained non-ASCII characters in Unicode-capable bindings. - 2018-10-26 (bug #6259) Unicode-capable language bindings incorrectly substituted characters references in option lists when global option "charref" was set to true. Character references are not substituted in option lists in general, except in options with the Unichar data type. - 2018-10-26 (bug #6261) PDF_convert_to_unicode() now accepts a NULL value for the "outputlen" parameter in the C binding if the "outputformat" option has the value "utf8" or "ebcdicutf8". - 2018-10-26 (bug #6262) In Unicode-capable bindings an error message about an invalid UTF-8 sequence was truncated for certain invalid UTF-8 sequences. - 2018-10-24 (feature #2406) Added support for Alpine Linux with musl libc. ================================= PDFlib 9.1.2p7 (October 15, 2018) ================================= - 2018-10-15 (bug #6246) Fallback fonts with shaping could result in wrong bidi reordering if neutral characters appeared at the border between master and fallback font. - 2018-10-14 (feature #2341) Reject ICC profiles with data color space Lab. Previously these were accepted although the color engine wasn't prepared to deal with ICCBased Lab color specifications and therefore triggered an exception. - 2018-10-10 (bug #6251) Implemented code signing for DSOs on macOS. Previously the unsigned PHP DSO made it impossible to use the PDFlib PHP binding on macOS Mojave. - 2018-10-10 (bug #6256) php-550-nts-VC9 is no longer delivered. - 2018-10-10 (feature #2399) Removed the unused Cobol binding from the MVS package. - 2018-10-04 (bug #6245) PDFlib could crash in PDF_end_document() after importing a document with an empty default viewing optional content configuration dictionary while specifying "uselayers=true" for PDF_open_pdi_document(). - 2018-10-04 (bug #6241) The minimum supported macOS version is now macOS 10.9. - 2018-09-27 (bug #6237) The Ant target "clean" for the Java example programs did not work as expected on Windows. - 2018-09-27 (bug #6244) Fixed a problem with decompression of Flate- and LZW-compressed streams having a /Predictor value of 10 or 11. - 2018-09-21 (bug #6232) No longer rely on name trees being sorted in pCOS. This makes pCOS more tolerant for incorrect PDF input, as the PDF Reference actually requires name tree entries to be sorted, and improves compatibility with Adobe Acrobat. =================================== PDFlib 9.1.2p6 (September 12, 2018) =================================== - 2018-09-13 (bug #6218) Textflow option "restore" only reset the options used in the most recent textflow option list, instead of resetting all options that were applied since the corresponding use of the "save" option. - 2018-09-12 (bug #6217) Redundant specifications of the "opacity" property in SVG resulted in the creation of an unnecessary graphics state parameter dictionary in the PDF output. - 2018-09-06 (bug #6225) Eliminated many Java 10 warnings when generating Javadoc HTML documentation. Many @param warnings nevertheless remain due to the current binding generator framework. - 2018-08-24 (bug #6214) PDF_open_pdi_callback() did not work correctly with large files >2GB on Windows and z/OS. Fixing this required a small change in the interface. - 2018-08-14 (bug #6201) PDFlib calculated an incorrect bounding box for textflows that contained a wrapbox, resulting in a wrong return value when calling PDF_info_textflow() with keyword "textheight". - 2018-08-03 (bug #6205) PDF_info_matchbox() could return a wrong value for keyword "count" if a textflow containing matchboxes was used inside a table. This problem was introduced in PDFlib 9.1.2p4. - 2018-07-27 (bug #6199) Fixed a crash in PDF_fill_graphicsblock() that occurred when -1 was passed for parameter "contents" and when there was no "defaultgraphics" property set in the block. ============================== PDFlib 9.1.2p5 (July 25, 2018) ============================== - 2018-07-25 (bug #6185) Fixed parsing of fragmented XML text in the XMP parser. - 2018-07-23 (feature #2366) Removed the REALbasic/Xojo binding. - 2018-07-05 (feature #1288) Migrated the Objective-C binding and iOS build from deprecated garbage collection to Automatic Reference Counting. - 2018-06-28 (feature #2322, feature #2370) Added support for Perl 5.28. ============================== PDFlib 9.1.2p4 (June 25, 2018) ============================== - 2018-06-27 (bug #6184) Fixed an invalid memory read beyond the end of a buffer in the XMP parser. - 2018-06-25 (bug #6175) With option "optimize=true" for PDF_begin_document() PDFlib created PDF output with an old-style cross-reference table that limited the size of the optimized PDF output file to approx. 9.3 GB. This restriction is removed, and PDFlib can now create optimized PDF output files with cross- reference streams that exceed 9.3 GB in size. - 2018-06-25 (bug #6182) PDFlib incorrectly rejected raw images with a size greater than two GB with the error message "Size (... bytes) of raw image file '...' doesn't match specified options". - 2018-06-25 (bug #6176) PDFlib incorrectly stopped processing of an SVG file with the error message "Floating point number 1000000000000000000.000000 too large for PDF" if a element contained a element as its first child and if the element was followed by further text within the element. - 2018-06-18 (bug #6172) When a property was specified twice via a PDF_set_info() and in an input XMP file in the "http://ns.adobe.com/pdfx/1.3/" namespace, the property was incorrectly written twice into the output XMP. - 2018-06-18 (bug #6169) Zero-width matchboxes were unexpectedly dropped from textflows. - 2018-06-18 (feature #2359) Created a new build configuration for PDFlib Mini Edition (ME) with support for security (encryption). - 2018-06-04 (feature #2358) Implemented the quoting mechanism specified in XMP for custom document info containing characters which are not allowed in XML names. This way the current naming restriction on custom keys for PDF_set_info() could be lifted. - 2018-05-30 (bug #6165) Fixed build errors that occurred when compiling PDFlib source code packages with a C89 compiler on HP Itanium. - 2018-05-24 (bug #6152) PDFlib created an invalid stream length for the document's XMP Metadata stream under the following conditions: - The output is AES-encrypted. - Option "optimize=true" is specified for PDF_begin_document(). - Option "autoxmp=true" is specified for PDF_begin_document() or PDF_end_document(). - 2018-05-24 (bug #6155) A crash occurred when importing a PNG file containing an alpha channel while creating PDF/VT output. - 2018-05-22 (bug #6155) PDFlib incorrectly allowed the creation of associated files without specifying the "relationship" option for PDF 2.0 output. Now option "relationship" is optional for PDF/A-2/3 and PDF 2.0 output. If the "relationship" option is not specified, PDFlib emits "Unspecified" for the relationship of an associated file. - 2018-05-17 (bug #6151) A crash occurred if an SVG file was loaded with option "templateoptions" and if PDF_info_graphics() was invoked with the keyword "fittingpossible" after the graphics had been placed with PDF_fit_graphics(). ============================= PDFlib 9.1.2p3 (May 07, 2018) ============================= - 2018-05-07 (bug #6146) The warning message 2568 "Conditions for option 'passthrough=true' are not fulfilled" was transformed into a logging output for logging class "text". - 2018-05-07 (bug #6136) Updated compiler requirements in readme-source.txt. - 2018-05-07 (bug #6141) For TrueType and OpenType fonts which contain both glyphs with a Unicode-PUA assignment and glyphs without any Unicode assignment (e.g. Arial Unicode MS) wrong glyphs were displayed. - 2018-05-03 (bug #6144) On z/OS a crash occurred through heap corruption if option "filenamehandling" was set to "honorlang" and if one of the environment variables "LANG", "LC_ALL" or "LC_CTYPE" contained an encoding specification that caused a filename conversion with iconv, e.g. "LC_ALL=en_US.IBM-1047". - 2018-05-03 (bug #6142) PDFlib incorrectly rendered the contents of elements in imported SVG files. - 2018-05-03 (bug #6139) Some modules were missing from the Borland/Embarcadero 32-bit and 64-bit libraries, causing error messages about missing symbols when trying to link against them. - 2018-05-03 (bug #6134) PDFlib incorrectly dropped tags from imported tagged table cells without any content, causing unevenly structured tables in the output document. Empty tags in table cells are now kept during PDF import, while empty tags outside of tables are still dropped. - 2018-04-17 (feature #2338) Calculate the bounding box for SVG graphics without absolute size information and improve the fitting algorithm for standalone SVG. - 2018-04-12 (bug #6113) Incorrect CSS in imported SVG could trigger the unexpected error message "load_font: Required option 'fontname' is missing" and a memory leak. - 2018-04-12 (bug #6120) Fixed a crash in SVG import that occurred when the keyword "inherit" was present in a font property that was applied to the top-level element. - 2018-04-12 (bug #6125) Fixed a crash that occured when specifying "autoxmp=true" for PDF_begin_document() while creating PDF/X-1a:2001 output. - 2018-04-11 (bug #6124) SSE2 extensions in source builds are now disabled by default. - 2018-04-04 (bug #6116) Invalid CSS in SVG could cause a memory leak. - 2018-04-04 (bug #6117) When a graphical element in SVG referenced a element with a "transform" attribute, the clip path's transformation was incorrectly applied to the graphical element. - 2018-03-28 (bug #6108) Invalid CSS in an imported SVG file could cause an endless loop. - 2018-03-28 (bug #6106) Fixed a problem in the SVG CSS parser that could cause invalid memory reads and incorrect font sizes for SVG text. - 2018-03-28 (bug #6103) Font properties defined in internal or external CSS stylesheets were incorrectly applied to all elements in an imported SVG file. =============================== PDFlib 9.1.2p2 (March 22, 2018) =============================== - 2018-03-21 (feature #2335) Implemented the options "forcesrgb", "honoriccprofile", and "iccprofilegray/iccprofilergb/iccprofilecmyk" of PDF_load_graphics() for improved ICC profile control for SVG graphics. PDFlib now also ignores a CMYK profile in SVG if it is identical to the PDF/X-4/5 output intent to avoid the respective error. - 2018-03-22 (bug #6094) Placing an image containing a clipping path as a child of the element with tagged PDF output resulted in the error message "Element type 'Document' cannot contain direct content, but only other structure elements'". - 2018-03-22 (bug #6085) Fixed several scenarios where PDFlib incorrectly allowed using handles of templates that were not yet finished with PDF_end_template_ext(). Now the error message 'Template handle ... must not be used before PDF_end_template_ext() was called for the corresponding template' is emitted in these situations. - 2018-03-22 (bug #6093) Querying the resolution for an image mask of an image retrieved via PDF_info_image(..., "imagemask", ...) with the 'resx' and 'resy' keywords of PDF_info_image() always resulted in a resolution of 72 dpi. Now the same 'resx' and 'resy' values as for the original image are returned for the image mask. - 2018-03-21 (bug #6096) Closing a template handle with PDF_close_image() that was used with the 'softmask' suboption 'template' of PDF_create_gstate() caused an exception 'Illegal array index ... in function pdc__hvtr_at' in PDF_end_document(). - 2018-03-21 (bug #6101) Option "movieposter" for PDF_create_annotation() now accepts an image handle in addition to the keywords "auto" and "none". This allows to assign an image as a poster to an annotation of type "Movie". - 2018-03-16 (bug #6099) Fixed the misleading warning that pointed out why a template could not be marked as an Encapsulated XObject in PDF/VT mode. Since the imlementation of feature #2242 in PDFlib 9.1.1 the suboption 'colorspace' of option 'transparencygroup' is required for PDF_begin_template_ext() to get an Encapsulated XObject. - 2018-03-15 (feature #2333) Added the keyword "pathlength" to PDF_info_path(). - 2018-03-15 (bug #6092) If the 'matchbox' suboption 'clipping' was specified with the default values '{0 0 100% 100%}' or with '{0 0 }' where and are the values of the object width and height, PDFlib did not create a clipping rectangle. - 2018-03-09 (feature #2334) Ignore a CMYK ICC profile in an image or SVG graphics if it is identical to the PDF/X-4/5 output intent profile. This avoids an error message for identical profiles without affecting the image colors. - 2018-03-08 (bug #6086) The SVG CSS 'font' property was evaluated incorrectly if the sub-properties 'font-style', 'font-variant' or 'font-weight' appeared in an unexpected order. - 2018-03-08 (bug #6078) PDFlib did not evaluate the SVG element correctly if the 'systemLanguage' attribute was not present for a child element. - 2018-03-01 (bug #6077) When using options 'fitmethod=clip' with PDF_fit_graphics() when no fitbox is available a wrong clipping was applied. - 2018-03-01 (bug #6073) The PDF output for an imported SVG file that only used ICCBased CMYK colors through colors defined with the SVG Color Extension contained an unnecessary initialization to sRGB black at the beginning of the content stream. - 2018-03-01 (bug #6076) PDFlib crashed when importing an SVG file that contained a 'font' property within a