================================ PDFlib 9.0.6 (November 24, 2015) ================================ - 2015-11-24 (bug #5362) When feeding a Textflow to the "createrichtext" option of PDF_create_annotation(), a newline is now created in XFA automatically. - 2015-11-23 (bug #5377) Modified the starter_pcos mini samples for C, PHP, Python and Ruby to avoid the deprecated API PDF_utf8_to_utf16() in favor of PDF_convert_to_unicode(). - 2015-11-23 (bug #5353) Added a sanity check for the number of components in JPEG 2000 images relative to the colorspace. - 2015-11-20 (bug #5402) Suppress empty rectangles which were created internally in certain situations, e.g. for the "showborder" option in the absence of a fitbox. - 2015-11-19 (feature #1582) Implemented the option "transform" for PDF_open_pdi_page() so that an imported page can be adjusted in size, rotation, or location. - 2015-11-18 (bug #5389) The tagging sequence "tagname=Artifact artifacttype=Pagination" with compatibility < 1.7 triggered an incorrect exception "Value 'Pagination' of property 'artifacttype' for tag 'Artifact' requires PDF 1.7" although there are no restrictions for the option "artifacttype". - 2015-11-18 (feature #1927) Check XMP on non-document-level (e.g. page-level XMP) for PDF/A extension schema requirements. Unlike PDF/A-1, this is required for PDF/A-2 and PDF/A-3. - 2015-11-17 (bug #5339) Modified the colorspace checks in the JPEG 2000 parser as follows: - "colr" boxes with METH=4 don't immediately trigger rejection, but only if no other usable colorspace is present. - The check that the "colr" box with APPROX=1 uses only METH=1, 2, or 3 is now only applied in PDF/A-2/3 mode. - 2015-11-17 (bug #5350) Modified the JPEG parser to avoid mistreating certain JPEG 2000 flavors as damaged JPEG images. This modification involved removal of very old and deprecated code for skipping initial garbage and some conditional code for the SAS compiler. - 2015-11-16 (feature #2039) Implemented the additional IpCOS interface in the Java binding which offers all core pCOS API functions plus various support functions for error handling, PVF handling etc. This interface facilitates demonstration of pCOS features in the pCOS Cookbook regardless of which product is used. - 2015-11-16 (feature #2030) Relax the PDF/UA-1 requirement that TH elements require the "Scope" attribute since this requirement has been dropped from ISO 14289-1:2014. - 2015-11-16 (bug #5390) PDF_fit_textline() and other content placement functions could crash in Tagged PDF mode if no structure element was active. This rare situation can happen, for example, when creating a template before the first page. - 2015-11-11 (bug #5365) Text options installed with PDF_set_text_option() could get lost if PDF_setfont() was called afterwards (note that the API Reference warns against mixing both kinds of calls). - 2015-11-03 (bug #5373) Incorrectly encoded TrueType text fonts with PUA values in the Microsoft Windows cmap are treated as Unicode text fonts provided usable glyph names are present in the font's "post" table. - 2015-11-03 (bug #5359) The option "createrichtext" of PDF_create_annotation() did not ensure that only grayscale or RGB colors were used in the supplied Textflow. As a result, CMYK colors were interpreted as RGB values. - 2015-10-27 (bug #5357) Implemented the options "artifactsubtype", "artifacttype" and "contents" for PDF_begin_mc() and PDF_begin_mc_point(), and clarified the supported subset of standard tagging options for these functions. - 2015-10-26 (bug #5352) Prevent denial of service attack via crafted TIFF images with huge pixel size (CVE-2015-7313). - 2015-10-20 (bug #5349) PDF_create_annotation(): the PDF 1.5 keywords "rclosedarrow" and "rclosedarrow" for the option "endingstyles" did not work. ================================= PDFlib 9.0.5p5 (October 14, 2015) ================================= - 2015-10-14 (bug #5338) The OS X framework could be broken in some packages. - 2015-10-14 (bug #5340) Adjusted the following PHP mini samples to prepare them for PHP 7: starter_fallback.php, starter_pdfvt1.php, starter_portfolio.php, starter_shaping.php Without the constructor renaming PHP 7 would emit the following warning: "Methods with the same name as their class will not be constructors in a future version of PHP; shaping has a deprecated constructor in XXX.php". - 2015-10-12 (feature #2021) Added support for the RDF shorthand attribute syntax which is sometimes used in XMP metadata. - 2015-10-09 (bug #5329) The sample application in the iOS package didn't run out of the box due to a packaging problem. - 2015-10-09 (bug #5331) Modified the fix for bug #5072 such that the Unicode remapping is also suppressed for U+00AD to prevent the mapping for U+002D from being lost for fonts where both characters are represented by the same glyph. - 2015-10-05 (bug #5327) In certain situations PDFlib could reject XMP due to PDF/A extension schema description problems even when not creating PDF/A output. - 2015-09-28 (bug #5325) Fixed heap corruption caused by EBCDIC-encode PFA files on EBCDIC systems. =================================== PDFlib 9.0.5p4 (September 18, 2015) =================================== - 2015-09-18 (feature #1903) Added support for PHP 7 (which is currently in beta). - 2015-09-18 (bug #5319) Subsetting certain OpenType fonts, e.g. DFMaruGothicPro5-W5 could result in invalid subsets which triggered an Acrobat error message "Cannot extract the embedded font '...'. Some characters may not display or print correctly." The reason was that the fix for bug #5173 was not yet general enough. - 2015-09-18 (bug #5303) Reject TIFF CIELab images with bpc != 8. - 2015-09-17 (bug #5302) Drop .jpm from the list of file name suffixes for images since JPEG 2000 part 6 (Compound) images are not actually supported. - 2015-09-16 (bug #5317) Encoding IBM-1145 could not be opened on zSeries. - 2015-08-18 (feature #2000) TrueType/OpenType fonts with a type 12 cmap: the generated ToUnicode CMap could incorrectly map the space character to U+FFFD instead of to U+0020 if the font mapped multiple control characters and U+0020 to the same glyph. - 2015-08-18 (bug #5296) PDF_fill_image_block() didn't ignore position=auto as it should, but placed the image outside the block instead. ================================ PDFlib 9.0.5p3 (August 17, 2015) ================================ - 2015-08-17 (bug #5289) PDF_fit_textflow() did not correctly identify attempts at using "restore" without any prior "save". - 2015-08-13 (feature #1991) Implemented the "datestring" option for PDF_create_annotation() to pass a specific creation date for annotations. This may be useful for applications which clone old annotations. - 2015-08-13 (bug #5260) Added support for Perl 5.8 on HP-UX IA64. - 2015-08-13 (bug #5287) PDF_fit_textflow() with verticalalign=bottom and fitmethod=nofit: overflowing text was no longer placed above the top border, but below the bottom border, therefore violating the vertical bottom alignment (introduced with the fix for bug #5253 in PDFlib 9.0.5p2). - 2015-08-12 (bug #5288) The characters U+00A0 NO-BREAK SPACE and U+202F 202F NARROW NO-BREAK SPACE have incorrectly been replaced with the .notdef glyph instead of with the glyph for U+0020 if no corresponding glyph was found in the font. - 2015-08-12 (feature #1941) PDF_create_annotation(): added support for annotations with type "Caret". - 2015-08-12 (bug #5278) A check was missing when loading a raw image with more than 1 bits per component and the "mask" option. As a result invalid PDF was generated. - 2015-08-11 (bug #5276) The extension-based search for font or image files was terminated prematurely if a directory in the search path was not accessible. As a result the misleading error message was emitted: "Couldn't open font file 'XXX.tte' for reading (permission denied)". - 2015-08-11 (bug #5279) Fixed a crash on MVS with CICS when no UPR file was found in PVF. - 2015-08-05 (feature #1944) Added support for Perl 5.22. - 2015-08-04 (bug #5273) The 64-bit Python 2.6 binary was missing from the OS X package. ============================== PDFlib 9.0.5p2 (July 29, 2015) ============================== - 2015-07-29 (bug #5271) The compatibility check for ICC profiles was wrong for TIFF images with palette color. As a result, correct RGB profiles were rejected with "ICC profile for image file 'XXX' doesn't match image data" and incorrect grayscale profiles were accepted. - 2015-07-28 (bug #5269) Interpret Photoshop resource id 0x435 to identify spot color channels as such. Previously only the similar older resource id 0x03EF was interpreted. As a result, TIFF images which have been created with Photoshop CS3 or above and contained a spot color channel had the spot color channel incorrectly applied as alpha channel. - 2015-07-28 (bug #5267) The mask (alpha channel) in multi-strip TIFF images with separate image planes was not processed correctly. - 2015-07-27 (bug #5265) Multi-strip TIFF images with separate image planes could cause a crash if the last strip was shorter than the previous strips. - 2015-07-27 (bug #5266) Reject extended JPEG 2000 images (JPX) which use features outside the baseline set except those which are explicitly allowed in the PDF reference. This check is required to ensure ISO 32000-1 conforming output. - 2015-07-27 (bug #5263) Reject JPEG 2000 images which are larger than 2GB since such images are subject to the 32-bit "integer" restriction in ISO 32000-1. Also, JPEG 2000 images with a non-zero entry in the XLBox have been interpreted incorrectly. - 2015-07-21 (bug #5253) PDF_fit_textflow() ignored wrapboxes outside the fitbox (bug introduced in PDFlib 9.0.2p4). - 2015-07-15 (bug #5252) PDF_add_table_cell(): trying to create tables with more than 32 cells resulted in an inappropriate error message "Cell in column(s) 33 and row(s) X: Illegal array index 32". (Bug introduced in PDFlib 9.0.4p1.) - 2015-07-10 (bug #5251) Guard the logging code against TIFF images with damaged Photoshop DisplayInfo resources. - 2015-07-07 (bug #5245) PDF_fit_textflow(): text could end with a single-line paragraph despite minlinecount=2. - 2015-07-07 (bug #5246) Clarified the effect of "textrendering" on Type 3 fonts in code and documentation. ============================== PDFlib 9.0.5p1 (June 29, 2015) ============================== - 2015-06-29 (bug #5234) A misleading message "Invalid UTF-8 sequence" was emitted if the text options "charref" and "textformat=utf8" were set and the first half of a surrogate character was supplied as character reference. Now the clearer message "Illegal keyword or HTML character entity '&#x....;' (illegal character code)" is emitted. - 2015-06-26 (bug #5233) Textflow: "verticalalign=center" or "bottom" was violated if adjustmethod=split was provided and the last text line would fit into the line, but not with an additional hyphen character. In this situation an additional empty line was created. - 2015-06-24 (bug #5241) The "filename" parameter of PDF_info_pvf() was incorrectly treated in the non-Unicode-aware language bindings which could result in garbled filenames or an inappropriate error "Invalid UTF-16 string (odd byte count)". Affected bindings: C++, Perl, PHP, Python, Ruby, Tcl - 2015-06-23 (bug #5239) TIFF images with photometric=min-is-white, extra samples, and separate image plane organization appeared inverted. - 2015-06-19 (bug #5237) The "createpvf" option PDF_begin_document() triggered an inappropriate warning "Couldn't open PDF file '/pvf/XXX.pdf' for reading (no such regular file)". Now the file size of the generated PVF file is emitted for logging level api=1. - 2015-06-16 (bug #5232) The "xadvancelist" option of PDF_fit_textflow() didn't accept the value 0 although this is reasonable for non-spacing glyphs. - 2015-06-09 (bug #5230) PHP binding: PDF_load_image() could crash if an image had an ICC profile embedded and the image data had to be inverted (e.g. CMYK JPEG or "invert" option). - 2015-06-08 (bug #5224) PDF_fill_graphics_block(): if a graphics block contained an invalid entry "defaultpdf" (which was created by some older versions of the Block Plugin) this entry was used instead of "defaultgraphics", and triggered an inappropriate error message. - 2015-05-21 (bug #5213) Avoid an empty JBIG2Globals stream for JBIG2 images which have been loaded with the "copyglobals" option, but don't actually contain any global segment. =========================== PDFlib 9.0.5 (May 20, 2015) =========================== - 2015-05-20 (feature #1890) PDF_load_image() now rejects JPEG2000 images with illegal palette size, and correctly determines the number of components for palette-based JPEG2000 images which is relevant for rejecting or accepting a user-supplied ICC profile. - 2015-05-18 (feature #1897/continued) Always omit the trailing section of embedded Type 1 fonts since this section with zero bytes is not actually required per ISO 32000-1. - 2015-05-18 (bug #5199) PDF_create_field() with type=pushbutton, checkbox, or radiobutton incorrectly accepted trigger events other than the allowed "activate". - 2015-05-18 (bug #5205) PDF_create_annotation() no longer emits /QuadPoints if usercoordinates=true and the annotation edges are parallel to the page edges. This change works around display problems in Acrobat with very large or very small scaling factors in the CTM. - 2015-05-18 (bug #5190) Perl binding: changed the order of cleanup operations to avoid the message "Library context pointer 0x0 is invalid ***" on stdout in rare situations related to the order in which the Perl operator calls destructors. The problem happened only very close to the end of the process. - 2015-02-18 (feature #1872) Optimized PDI page import to avoid unnecessary wrapping with a Form XObject for pages from documents which themselves have been imported with PDI without any transformation (e.g. scaling or rotation), provided certain conditions related to page import options are met. - 2015-05-18 (bug #5198) PDF_process_pdi(): action=copyallblocks and action=copyblocks could hang when copying Blocks which have been converted from AcroForms with the PDFlib Block Plugin (any version). - 2015-05-18 (bug #5202) Some JBIG2-compressed images were rejected with the message "Corrupt JBIG2 image file 'XXX.jbig2'" This problem affected JBIG2 images which contained a segment of type "immediate generic region" and and the value 0xFFFFFFFF in the "length" field (which is legal according to the JBIG specification). - 2015-05-18 (feature #1938) PDF_open_pdi_document() always imported the structure hierarchy of imported Tagged PDF documents, even for untagged output or in object scope. This has been changed to the documented default of importing tags only for Tagged PDF output to avoid a performance hit in the untagged output case. - 2015-05-13 (feature #926) Added support for proportional metrics in vertical writing mode; it can be enabled with the new "readverticalmetrics" font option. - 2015-05-12 (bug #5195) Added support for Visual Studio 2013 (VS12) and 2015 (VS14) to the build system. - 2015-05-06 (bug #5130) PDF_create_field() rejects a signature field if a field with the same name already exists in the same document. - 2015-05-08 (feature #1896) Implemented the new option "boundingbox" for PDF_begin_template_ext(). - 2015-05-06 (feature #1929) Added support for user-supplied custom CMaps. - 2015-05-06 (bug #5189) The SVG property "baseline-shift" is now properly applied to vertical text. - 2015-05-01 (bug #5188) Black-and-white TIFF images with more than 100 megapixels are no longer handled in passthrough mode by default, resulting in a single image instead of many small strips. The previous limit had been implemented to work around memory restrictions in COM, but was no longer required due to changes in the processing of black-and-white TIFF images. - 2015-04-29 (feature #1765) Documented support for OpenType Collection (also called Font Collections) files according to the OpenType 1.7 specification. - 2015-04-29 (bug #5185) Add the file name to the error message which is emitted for damaged PNG images. - 2015-04-27 (bug #5182) Reject HDR TIFF images with photometric=PHOTOMETRIC_LOGLUV or PHOTOMETRIC_LOGL since PDFlib cannot convert these to PDF correctly. - 2015-04-27 (bug #5180) Named matchboxes defined in the "fittextflow" option of PDF_add_table_cell() could results in wrong matchbox coordinates returned by PDF_info_matchbox(). - 2015-04-27 (bug #5178) The /FontName entry in the FontDescriptor did not always match the /BaseFont entry in the corresponding font or CIDFont dictionary. Although the match is irrelevant for PDF rendering, ISO 32000-1 mandates identical entries, and some validators check for equality. - 2015-04-23 (bug #5172) Emit an error message if the number of fallback fonts for a particular font exceeds a font-specific implementation limit. - 2015-04-23 (feature #1924) The "colorize" option of PDF_load_image() now supports a Color option list in addition to a spot handle. This facilitates defining and using a spot color for colorizing an image without the need for creating and passing a spot color handle. - 2015-04-23 (bug #5176) Added a PDI workaround to fix syntax problems in documents created by Oracle PDF driver. - 2015-04-23 (bug #5173) Subsetting fonts in the "Noto Sans CJK" font family resulted in invalid subset font output due to the specific internal nature of the CFF data. This triggered the Acrobat message "Cannot extract the embedded font '...'. Some characters may not display or print correctly." - 2015-04-23 (bug #5169) PDF_fit_image() with the "clipping" option incorrectly clipped BMP images from the top instead of from the bottom - 2015-04-16 (bug #5164) Fixed a problem with an uninitialized variable in the XMP parser. - 2015-04-15 (bug #5163) The /Decode array created via the "invert" or "colorize" options of PDF_load_image() could be wrong for Indexed and Lab colorspaces or rare cases of ICCBased color. - 2015-04-09 (bug #5158) Text output in vertical writing mode did not take into account the charspacing and wordspacing options. Kerning values for vertical writing mode can be applied now, but for compatibility reasons the default of the "readkerning" option is false for vertical fonts. =============================== PDFlib 9.0.4p2 (April 08, 2015) =============================== - 2015-04-08 (bug #5105) Significantly improved the performance of Tagged PDF import with documents containing a very large structure hierarchy. - 2015-04-02 (bug #5145) Updated the published CMap package to PDFlib-CMap-2.0 since PDFlib-CMap-1.0 contained an outdated Unicode mapping file "Adobe-GB1-UCS2". - 2015-04-01 (bug #5152) Improved the consistency check for JPEG2000 images to ensure that images without the required "ihdr" box are rejected before accessing the data (and risking an exception). Also check for the required "ftyp" box. - 2015-04-01 (bug #5150) Fixed a crash on little-endian platforms with 16-bit RGB TIFF images if the TIFF contained damaged row data. - 2015-04-01 (feature #1913) Added a binding for Python 3.3 and above on OS X. - 2015-03-31 (bug #5149) Text output could fail with the message "Illegal array index 54328 in function pdc__vtr_at" if a glyph from a fallback font was used where the glyph id was larger than the number of glyphs in the master font. - 2015-03-31 (bug #5147) Accept character devices such as /dev/null as output file. - 2015-03-26 (bug #5138) The default search path entries were incorrectly registered again after deleting them when a UPR file was explicitly loaded with the "resourcefile" option. - 2015-03-23 (bug #5136) PDI incorrectly rejected strings larger than 64KB with a misleading message "PDF format error: "Unbalanced '(' in string (file 'XXX' at offset YYY)." Since such strings don't appear in well-formed imported pages this problem went unnoticed for a long time. - 2015-03-20 (bug #5134) Importing a PDF page with layers caused a crash if /Root/OCProperties/D/OFF didn't contain any entries. - 2015-03-18 (bug #5064) Textflow rejected incoming text with more than 255 space characters ("Text contains too many spaces (> 255) between words"). - 2015-03-18 (bug #5131) Attempting to load unsupported WOFF2 fonts resulted in an unexpected message. - 2015-03-07 (bug #5116) Debug builds for Windows crashed upon startup. Since PDFlib GmbH does not deliver such binaries the problem affected only source code customers with a custom build process. - 2015-03-05 (bug #5114) Fixed wrong format of long integers in TIFF logging output on Windows 64-bit. - 2015-03-04 (bug #5110) CMYK and RGB TIFF images with 1, 2 or 4 bits per component are not supported with passthrough=false, but were not rejected. - 2015-03-03 (bug #5111) PDI incorrectly dealt with object streams without any whitespace between the last object offset and the first object if the first object represented a number. - 2015-02-27 (bug #5109) 16-bit TIFF images with little-endian byte order and LZW compression with Predictor resulted in incorrect PDF display if they were processed in passthrough mode. Workaround: use "passthrough=false". ================================== PDFlib 9.0.4p1 (February 26, 2015) ================================== - 2015-02-26 (feature #1892) Implemented the new keyword "hostfont" for the "skipembedding" font option. - 2015-02-26 (bug #5075) Refined the search for images referenced from SVG files in combination with searchpath to match user expectations. If PDFlib doesn't find a referenced file according to the previous method: // and // then it attempts to locate the file without the component: //. - 2015-02-25 (bug #5102) TIFF images with 1, 2 or 4 bits per component and an alpha channel are unsupported, but were not properly rejected, resulting in garbage image output. - 2015-02-25 (bug #5108) OpenType features with GSUB LookupType 7 were not interpreted correctly, but triggered a warning "Member CoverageFormat has invalid value XXX". - 2015-02-23 (bug #5062) PDFlib for Ruby 2.1 and 2.2 could fail on Linux and FreeBSD with a message ".../kernel_require.rb:54:in `require': libgmp.so.3: cannot open shared object file: No such file or directory" - 2015-02-23 (bug #5106) UPR files without a newline character at the end could cause a crash. - 2015-02-23 (bug #5100) PDF_open_pdi_page() could throw an exception "Internal error: assertion failed" when trying to import a page without a /Type key if this page was not the first imported page. - 2015-02-23 (bug #5104) SVG import: the specification does not define the behavior of elements which are surrounded by text with the attribute text-anchor="middle". PDFlib output now drops the surrounding text along with the path text to match the behavior of common browsers. - 2015-02-16 (bug #5091) During the first pass of Type 3 font generation with subsetting PDF_load_image() with inline=true could incorrectly write glyph outline descriptions to the PDF output into the dead area between objects. - 2015-02-15 (feature #1897) Accept PostScript Type 1 fonts in PFB format where the block of trailing zero bytes is missing. - 2015-02-15 (feature #1895) Implemented the resource category "cmap" which was already documented, but not actually supported in PDFlib. - 2015-02-13 (bug #5072) User-supplied control characters trigged ActualText creation per feature #1786, which in turn results in problems with Acrobat's text extraction. Control characters now no longer trigger ActualText creation. - 2015-02-12 (bug #5077) Fixed a potential problem with uninitialized memory related to CCITT- compressed TIFF images. - 2015-02-11 (bug #5074) Fixed a memory problem in PDF_fit_textflow() which could happen under rare circumstances. - 2015-02-10 (bug #5065) Significantly improved performance of resource enumeration for very large numbers of fonts or images, e.g. when querying the pCOS paths "length:fonts" or "length:pages[...]/fonts". - 2015-02-10 (bug #5066) Control characters replaced by the replacement character in PDF_fit_textline() no longer trigger creation of ActualText. - 2015-02-10 (bug #5053) Eliminated an inappropriate warning with logging class api=2 related to the internal use of PDF_deflate_unicode() in the wrappers for Unicode-aware language bindings. - 2015-02-02 (bug #5052) PDF_open_pdi_page() could cause a stack overflow with input documents which contain layers and invalid recursive resource definitions. As a workaround userlayers=false can be used. - 2015-01-26 (bug #5049) Reduced the stack requirements of PDF_fit_table() for tables with Textflow cells. Especially on 32-bit machines a very large number of Textflow cells in a table could cause a stack overflow. - 2015-01-22 (bug #5039) In some cases Textflow could create isolated lines even if "minlinecount=2" was specified. - 2015-01-19 (feature #1879) PDF_set_encoding_char() now honors implicit Unicode semantics in glyph names, e.g. "unixxxx", "uxxxxx", "Uxxxxxxxx" etc. - 2015-01-15 (bug #5032) The (unsupported) encodings "macexpert" and "adobesymbol" resulted in missing glyphs. - 2014-12-16 (bug #5005) PDF_load_font() with the option "initialsubset" could result in an inappropriate warning for the supplied encoding name(s) "Illegal HTML character entity 'iso8859' (illegal character name)". ================================ PDFlib 9.0.4 (December 15, 2014) ================================ - 2014-12-15 (bug #5001) If a font with fontstyle=bold was active and a template was placed, text within the template appeared embolded even if the font for that text didn't have fontstyle=bold. - 2014-12-12 (feature #1861) Added a comment to all PHP samples about disabling host font access to avoid potential crashes with certain combinations of PHP builds and OS X versions. - 2014-12-11 (bug #4994) The "enumeratefonts" action did not create proper resource definitions for font styles contained in a TTC file, e.g. "Gill Sans,Italic" was created instead of "Gill Sans Italic". - 2014-12-05 (bug #4931) PDF_create_gstate(), option "softmask", suboption "template": according to ISO 32000-1 PDFlib now enforces the following rule: if type=luminosity, the supplied template handle must have been created with the "colorspace" suboption of the "transparencygroup" option with a value different from "none". - 2014-11-28 (bug #4952) The XMP engine produced invalid output if incoming XMP used a prefix different from "rdf" for the namespace URI "http://www.w3.org/1999/02/22-rdf-syntax-ns#". - 2014-11-21 (bug #4980) The graphics appearance option "dasharray" didn't accept the value "{0 0}" for a solid line, and the text option "dasharray" didn't accept the keyword "none" for a solid line. For consistency both options now support both flavors. - 2014-11-20 (bug #4890) Emit the /AS entry (appearance state) for radio buttons and check boxes for ISO 32000-1 conformance. - 2014-11-20 (bug #4881) The *.vbp project files for Visual Basic included a wrong GUID reference to the PDFlib DLL. - 2014-11-02 (bug #4942) Fixed a crash in the XMP engine related to a missing "rdf:Description" element. - 2014-11-06 (feature #1786) Implemented the option "actualtext" for PDF_set_text_option(), PDF_fit_textline() and PDF_fill_textblock() which controls the creation of an ActualText span with appropriate Unicode values for glyphs in a font which are used to represent multiple different Unicode values. - 2014-11-02 (bug #4929) The "decorationabove" option was incorrectly set to "false" after a PDF_save()/PDF_restore() pair. - 2014-11-02 (bug #4928) The option "fontstyle=bold" didn't have any effect after setting a dash pattern. - 2014-10-28 (bug #4922) If PDF_end_mc() was called in template, pattern or glyph scope an incorrect error message "Invalid end of marked content (no matching begin)" was emitted even with proper nesting of PDF_begin_mc()/PDF_end_mc(). - 2014-10-28 (bug #4923) PDF_open_pdi_page() incorrectly rejected the option "transparencygroup" with an empty list value although this should be allowed. - 2014-10-24 (bug #4918) Fixed a memory problem when writing high-accuracy float values for geospatial PDF or 3D artwork. - 2014-10-21 (bug #4915) PDI did not properly take into account the /Version entry in the Catalog when determining the PDF version number. - 2014-10-20 (feature #1831) PDF_info_graphics() with keywords "title" and "description": in addition to the outermost element the outermost element is searched for to match the behavior of common browsers. - 2014-10-20 (bug #4912) PDF_set_option() did not apply scope checks for the "license" and "licensefile" options. This could result in a confusing message "Unmatched save level" when a license key was set in page scope. ================================= PDFlib 9.0.3p5 (October 16, 2014) ================================= - 2014-10-16 (feature #1766) Added support for OpenType lookup type 7 which is required for GSUB tables which exceed the 16-bit limit. Lookup type 7 is used in some new fonts including Adobe's SourceHanSans. - 2014-10-16 (bug #4913) SVG images could be placed with wrong size if units were used and a viewBox was present. - 2014-10-16 (feature #922/REOPENED, bug #4882) The PANTONE spot colors 7548 C - 7771 C and 7548 U - 7771 U were missing from the internal list. - 2014-10-15 (bug #4910) Avoid the encoding entry "/BaseEncoding/StandardEncoding" since it doesn't conform to ISO 32000-1 and is correctly rejected by the PDF syntax check in Acrobat Preflight. - 2014-10-15 (bug #4908) Fixed a problem in the build process for the "Release" version of the .NET build. The bug prevented successful linking when building PDFlib from the source code package. - 2014-10-15 (feature #1805) A small number of file attachments is no longer written with a generalized name tree, but the simpler form which uses only a flat array. This is a workaround for restricted PDF consumers who cannot deal with general name trees, especially in the context of ZUGFeRD invoices. - 2014-10-09 (feature #1827) In addition to the base character the variation selector is now also written to the ToUnicode CMap to allow round-tripping of Standard and and Ideographic Variation Sequences (IVS). - 2014-09-30 (bug #4898) If a font was loaded in objects scope and supplied to the "font" option of PDF_create_field(), an invalid object reference was emitted in the PDF output, and the field was ignored by Acrobat. - 2014-09-24 (bug #4738) Added support for PHP 5.6. - 2014-09-24 (bug #4889) A Textflow cell in a table could incorrectly end up without any contents under specific circumstances. - 2014-09-23 (bug #4893) Textflow: the "textrise" option was not taken into account correctly for calculating the text strips for wrapping. As a result, wrapboxes e.g. created by dropcaps were not honored. - 2014-09-08 (feature #1795) Added support for tapping system code pages on Linux with iconv. - 2014-09-03 (bug #4871) PDF_setlinewidth() was incorrectly marked as deprecated in the logging output. - 2014-09-03 (bug #4867) Removed deprecated API functions from the prototype list for Eclipse PDT and Zend Studio for use with PHP. =================================== PDFlib 9.0.3p4 (September 01, 2014) =================================== - 2014-09-01 (bug #4869) pCOS: silently ignore invalid ColorSpace resources to avoid an error message. - 2013-08-26 (bug #4566/REOPENED) Using the "fakebold" option before placing an imported PDI page could incorrectly also embolden text on the imported page because the text state parameters were not correctly reset. - 2014-08-21 (bug #4856) Improved the conversion of SVG RGB values which are represented as unsigned bytes to double values. This results in improved accuracy and better round tripping of RGB color values. - 2014-08-11 (bug #4850) The "svgpath" option of PDF_add_path_point() did not correctly close the path with the "z" or "Z" operator. - 2014-08-11 (bug #4848) SVG with stroke-width="0" incorrectly produced a stroked line in the PDF output, although SVG demands that no stroke be produced in this case. - 2014-08-11 (bug #4847) SVG: the "transform" attribute in a "text" element was ignored for text in a "clipPath" element. - 2014-08-11 (bug #4843) Wrong glyphs could be emitted for TrueType fonts with overlapping segmented cmaps. - 2014-08-04 (feature #1769) Added support for Perl 5.20. - 2014-08-02 (bug #4844) PDF_open_pdi_page() could end up in an infinite loop (actually crashing because of stack overflow) when importing a page with layers if the page contained invalid cyclic references in Form XObjects. - 2014-07-30 (bug #4835/feature #1779) Added support for Ruby 2.1. - 2014-07-30 (bug #3984) The Perl binding emits a clear message now if the Perl interpreter and the extension library are not compatible, e.g. "Perl API version v5.16.0 of pdflib_pl does not match v5.14.0 at /usr/local/perl-514/lib/5.14.1/x86_64-linux-thread-multi/DynaLoader.pm...". This feature works with Perl 5.14 and above. ============================== PDFlib 9.0.3p3 (July 28, 2014) ============================== - 2014-07-28 (bug #4834) Adjusted the C++ wrapper to make it compatible with the historic Visual Studio 6 compiler. Note that some of the supplied C++ samples also don't compile in VS6, but we didn't make any attempt to rewrite these. - 2014-07-24 (bug #4145) SVG: implemented a missing special rule for radial gradients. - 2014-07-24 (feature #1763) SVG: added support for the "spreadMethod" attribute of the "linearGradient" and "radialGradient" elements. - 2014-07-22 (bug #4767) Updated the build for Windows Compact Embedded (Windows CE), using the PDFlib Mini Edition (ME) configuration. - 2014-07-21 (bug #4828) Fixed a packaging problem with the iSeries package. - 2014-07-21 (bug #4817) Some platform-specific auxiliary files were missing in the EBCDIC source code packages. The --enable-xplink and --with-dataset options can now be combined. The --enable-xplink and --disable-ieee options are now passed through to auxiliary libraries. - 2014-07-17 (bug #4821) File names are now checked against the specified "filenamehandling" also for "filenamehandling=unicode". As a result, file names with invalid UTF-8 sequences are now rejected. - 2014-07-16 (bug #4818) Large fonts with exactly 65535 glyphs could lead to a crash when creating subsets. - 2014-07-16 (bug #4810) A XMP extension schemas for PDF/A was incorrectly rejected with "PDF/A extension schema 'xxx' doesn't have description embedded" if it used a namespace prefix different from the preferred prefix defined in the corresponding extension schema description. - 2014-07-13 (bug #4807) XMP merging: PDF/A extension schema description or other nodes could get lost if they appeared in two XMP fragments (e.g. supplied to PDF_begin_document() and PDF_end_document()) due to a bug in the duplication prevention code. - 2014-07-12 (bug #4813) XMP processing: namespace declarations for attributes could get lost for elements other than "rdf:Description", resulting in invalid XMP output. - 2014-07-10 (bug #4808) PDF documents larger than 2GB could not be processed correctly on Windows 64-bit in some situations. The previous limit of 4GB for the unsupported "mmiolimit" option has been lifted to support memory-mapping of arbitrarily large documents. - 2014-07-10 (bug #4814) PDF input documents with a direct /Encrypt dictionary in the trailer were incorrectly rejected ("Indirect object reference expected"). This construct is very rare, but legal. - 2014-07-10 (bug #4798) Trying to produce text output in vertical writing mode in combination with "italicangle" resulted in an exception. This exception is now downgraded to a warning, and "italicangle" is ignored. - 2014-07-08 (bug #4795) Radial SVG gradients with an initial offset larger than 0 or a final offset smaller than 1 were not processed correctly. - 2014-07-08 (bug #4808) Preserving XMP metadata from JPEG images with "metadata={keepxmp}" in PDF_load_image() didn't work if no Exif marker was present. - 2014-07-08 (bug #4806) .NET: the C++ CLI samples didn't work out of the box due to an incorrect path in a "using" directive. Also updated the .NET 4.0 solutions to Visual Studio 2010. - 2014-07-07 (bug #4799, bug #4703/REOPENED) The fix for bug #4703 was not complete. PDF_fit_textline() could incorrectly issue an error "Floating point number xxx too large for PDF" if PDF_set_text_option() was called with textrendering >= 4 before a font was set. - 2014-07-02 (bug #4803) (Source code packages only) Added support for 64-bit cross-compilation for creating MVS binaries on USS. - 2014-07-01 (bug #4797) (Source code packages only) Extended the build system to support cross- compilation for 31-bit/32-bit zLinux/Linux targets on 64-bit systems. - 2014-06-18 (bug #4787) PDI no longer automatically triggers repair mode for a certain kind of inconsistency in the xref structures, but attempts to fix the problems without a full re-scan of all PDF objects. ============================== PDFlib 9.0.3p2 (June 16, 2014) ============================== - 2014-06-16 (bug #4782) When PDI repair mode adjusted the length of a stream object, the /Length3 entry for PostScript Type 1 fonts was not adjusted correspondingly. As a result, Acrobat did not use the embedded font, but complained "Cannot extract the embedded font XXX. Some characters may not display or print correctly". - 2014-06-16 (feature #1690) Dynamic XFA forms are rejected as non-PDF documents since they do not conform to ISO 32000-1 and cannot be processed in any meaningful way. Previously the dummy page with information about updating Adobe Reader has been processed. This caused a lot of confusion but didn't provide any benefit. - 2014-06-16 (bug #4786) Text in SVG could have wrong font size in the PDF output since attribute values with the units "em" and "ex" were calculated incorrectly, especially in the case of fontsize values. - 2014-06-02 (bug #4773) Implemented the font option "simplefont" which helps Acrobat's font substitution for unembedded TrueType fonts with an 8-bit encoding. ============================= PDFlib 9.0.3p1 (May 26, 2014) ============================= - 2014-05-16 (bug #4764) pCOS reported wrong embedding status for embedded OpenType fonts with subtype CIDFontType2. - 2014-05-23 (bug #4763) PDF/X-1/3 documents were not correctly identified as PDF/X if the standard identifier in the document info dictionary was encoded in UTF-16. - 2014-05-21 (bug #4762) Aligned the packages for embedded systems more closely with the Linux packages, and clarified the role of the PDFlib Mini Edition (ME). =========================== PDFlib 9.0.3 (May 15, 2014) =========================== - 2014-05-15 (feature #1738) Verified that the source code compiles in C11 mode. - 2014-05-12 (bug #4754) The .NET installer creates the registry entries which are required for direct selection of the .NET assembly in VisualStudio's "add reference" tab. The "Typical" installation flavor now installs only the .NET 4.0 assembly. - 2014-05-12 (bug #4757) If a font contained glyphs for use with multiple different Unicode values the generated ToUnicode CMap could contain a wrong entry for such glyphs. Now the first Unicode mapping is used in case multiple mappings are present. - 2014-05-12 (bug #4746) Fixed an infinite loop in PDF_fit_textflow() related to wrap boxes in a fitbox with verticalalignment=bottom. (The previous fix was incomplete.) - 2014-05-12 (bug #4756) Updated Makefiles to set X/Open defines which are required for getopt() on some platforms (only relevant for sample applications in source code packages). - 2014-05-08 (feature #1737) Replaced the DejaVuSerif font in the samples to LinLibertine_R which offers more OpenType features. - 2014-05-06 (feature #1733) Implemented the suboptions includepid/includetid/includeoid for the "logging" option to facilitate logging in multi-threaded applications. - 2014-05-05 (feature #1732) Added vendor, product and version information to the manifest of the Java binding. =============================== PDFlib 9.0.2p6 (April 30, 2014) =============================== - 2014-04-30 (bug #4746) Fixed an infinite loop in PDF_fit_textflow() related to wrap boxes in a fitbox with verticalalignment=bottom. - 2014-04-29 (bug #4747) Fonts which used a single glyph for Arabic presentation form and general form could result in incorrect Unicode mapping since the font engine selected the inappropriate Unicode value for the presentation form. As a result, glyphs were not visible when addressed with the general Unicode value. Now Unicode values for the general forms have priority over presentation form values. - 2014-04-29 (bug #4729 and bug #4749) Corrected the behavior of PDF_info_matchbox(): - Keyword=count and boxname=* returned the number of rectangles for all matchboxes on the page instead of the number of matchboxes on the page. - Keyword=name incorrectly iterated over all matchbox rectangles instead of over all matchboxes. The returned matchbox names could be wrong if at least one matchbox had more than one rectangle. - Consolidated matchbox and rectangle selection with the "boxname" and "num" parameters. - 2014-04-28 (bug #4741) Removed confusing "unsupported parameter" warnings in the logging output which were caused by internal settings in the language bindings. - 2014-04-25 (bug #4724) No longer throw an exception when removing a file fails, but emit only a warning since this is never a fatal condition and may obscure another more important error message. - 2014-04-25 (bug #4728) Unconditionally emit the /W, /S and /Border entries in an annotation dictionary (instead of relying on the default values) to work around a bug in Adobe Reader. - 2014-04-23 (bug #4736) Improved the error message when forbidden text options were used in combination with stringformat=utf8. - 2014-04-23 (bug #4737) Unicode-aware language bindings did not correctly process the option list data type "Unichar". However, options of this type (e.g. "charclass") accepted only ASCII characters if a literal character was supplied. - 2014-04-22 (bug #4660) Added support for PHP 5.6beta1. - 2014-04-22 (bug #4727) PDF_info_table() and tables with more than one table instance: the y value of the last horizontal line (keyword yhorline#) of all but the last table instances was incorrectly reported as 0. =============================== PDFlib 9.0.2p5 (April 10, 2014) =============================== - 2014-04-04 (bug #4725) Clarified the behavior of PDF_info_font() for querying OpenType features, and added support for the falt, fina, init, isol and medi features. - 2014-04-04 (bug #4717) Added support for PHP 5.5.0-nozts VS9 which is required for ZendServer 6.3. - 2014-04-02 (bug #4711) Textflow: wrap boxes in combination with verticalalign != top could result in incorrect formatting (too few text lines). - 2014-03-31 (bug #4656) Minor adustments for Python 3.4. - 2014-03-20 (feature #1714) Added 84 new colors in the PANTONE PLUS Solid Coated and Uncoated spot color libraries. The new colors have been introduced by Pantone, Inc. in March 2014. - 2014-03-27 (bug #4708) C++ binding: when using a custom string type with the basic_PDFlib template class members of the Exception object were not converted to the custom string type. For example, using unsigned short arrays for UTF-16 strings (as opposed to native wstrings) would trigger this bug. - 2014-03-27 (bug #4710) Matchboxes could be wrong for images with a mask. - 2014-03-26 (feature #1686) Added support for FreeBSD 10. - 2014-03-25 (feature #1719) PDF_open_pdi_page() now removes the /BBox attribute from imported structure elements, as well as /Width and /Height since these values may no longer be correct if the user applies a transformation in PDF_fit_pdi_page(). - 2014-03-20 (feature #1717) Improved the PDFlib Mini Edition (ME) for balancing functionality and memory requirements. =============================== PDFlib 9.0.2p4 (March 20, 2014) =============================== - 2014-03-20 (bug #4705) Fixed a crash in PDI related to encrypted PDF for which no userpassword was supplied, and where the /Extensions dictionary resides in an object stream. As a result, pCOS in minimum mode reports a PDF version number in this case which may be too low since the ExtensionLevel is no longer honored. - 2014-03-19 (bug #4703) An inappropriate exception "Floating point number ... too large for PDF" could be thrown if PDF_set_text_option() was called for a text option before any font was set. - 2014-03-19 (bug #4696) Significantly reduced the amount of memory on the stack required for importing PDF documents with tags or layers. This reduces the overall stack requirements and avoids problems with limited stack size on IIS. - 2014-03-17 (feature #1716) Reorganized and improved internal PDF_FEATURE_... #defines. - 2014-03-10 (bug #4691) Textflow: for some combinations of wrapping shapes and values of firstlinedist the text could be placed incorrectly, resulting in text outside of the wrapping shape. - 2014-03-07 (bug #4688) Calling PDF_makespotcolor() in C++ or another Unicode-aware language binding with a spot color name containing non-ASCII characters triggered an inappropriate error message. - 2014-03-06 (bug #4686) Fixed a bug with parsing the top DICT Data of the CFF table in OpenType fonts. As a result of this bug certain CFF fonts could result in unusable font subsets in the PDF and an Acrobat message "Cannot extract the embedded font 'XXX'. Some characters may not display or print correctly." ================================== PDFlib 9.0.2p3 (February 24, 2014) ================================== - 2014-02-24 (feature #1682) Implemented the "clockwise" option of PDF_add_path_point() also for type=circle, ellipse, elliptical, rect in addition to type=elliptical. - 2014-02-21 (bug #4684) PDF_elliptical_arc() could erratically throw exceptions if the starting point of the arc coincided with the end point. Now this situation is silently ignored (with a warning). - 2014-02-13 (feature #1706) Implemented the new option "code" for PDF_begin_glyph_ext() which can be use to force a specific ordering of glyphs which may be different from the creation order. This is useful for using encoding=builtin with Type 3 fonts. - 2014-02-12 (bug #4676) Improved the output for SVG gradients with multiple identical values of stop-opacity in combination with opaque referring shapes. - 2014-02-12 (bug #4674) Significantly improved memory performance by reducing the number of malloc/free cycles related to large buffers. This mainly affects applications with a large number of pages and few page contents. - 2014-02-06 (bug #4673) When merging two XMP packets the namespace definitions of the second package could get lost. ================================= PDFlib 9.0.2p2 (January 29, 2014) ================================= - 2014-01-29 (bug #4662) The USS cross build for MVS ended with a compilation error when creating XPLINK binaries. - 2014-01-27 (bug #4659) Allow the use of Unicode control characters in user-defined encodings for Type 3 fonts. Semantically this doesn't make sense, but some legacy application rely on such mappings. - 2014-01-24 (bug #4469) Added support for Perl 5.18 on Windows (ActiveState and Strawberry builds). - 2014-01-24 (bug #4657) Significantly improved the performance of PDI for tagged input documents. - 2014-01-22 (bug #4655) PDF_fit_table() could trigger an inappropriate error message "Invalid UTF-16 string" in Unicode-capable language bindings when "fitfield" or "fitannotation" had been used in a corresponding prior call to PDF_add_table_cell(). - 2014-01-19 (bug #4648) Significantly improved the performance of PDI for input documents containing layers. - 2014-01-17 (bug #4651) pCOS could return PDF/X version information for PDF/X-1 documents with a wrong pdfxid:GTS_PDFXVersion property in the XMP metadata (which must be ignored for PDF/X-1). ================================= PDFlib 9.0.2p1 (January 13, 2014) ================================= - 2014-01-13 (bug #4667) Registration of the COM DLL did not work correctly since the version entry it the type library did not reflect the fact that a new API function has been added in PDFlib 9.0.2 - 2014-01-10 (bug #4644) Shapes of type "rect" in PDF_add_path_point() were created in clockwise direction. In order to unify the direction of all shapes they are now also created in counterclockwise direction, just like "circle" and "ellipse" shapes. - 2014-01-10 (bug #4646) Windows builds from a source code package stopped with an obscure error message if the Windows SDK 7.0 was not installed. - 2014-01-10 (bug #4633) The XMP parser emitted an inappropriate error message "XMP metadata: PDF/A extension schema '...' doesn't have description embedded" if a namespace was declared locally at some element instead of at the corresponding rdf:Description element. - 2014-01-07 (bug #4643) An inappropriate exception "Unknown option 'tagname'" occurred if the "tag" option was supplied to PDF_add_table_cell() in a Unicode-aware language binding or a non-Unicode-aware language binding with stringformat=utf8. - 2014-01-02 (bug #4641) PDFlib_ios.framework was missing from the PDFlib 9.0.2 package for iOS. - 2013-12-24 (bug #4635) Modified the behavior of the pCOS path prefix "type:" in case of damaged PDF documents: instead of throwing an exception, the type "null" is now returned when a PDF syntax error is encountered while trying to access the PDF object specified in the pCOS path. - 2013-12-19 (bug #4634) When importing a PDF page with layers, PDI ignored layer definitions consisting of an OCMD with a single dictionary entry in /OCGs (as opposed to an array containing multiple OCGs). As a result, the contents of layers appeared on top of each other on the output page. ================================ PDFlib 9.0.2 (December 17, 2013) ================================ - 2013-12-17 (bug #4627) Setting an empty or NULL license key now results in an exception "Invalid license key". Previously it triggered a full resource search for a license file, which was undesired and undocumented behavior. - 2013-12-17 (bug #4631) Improved performance in situations with large numbers of image or Form XObject resources and many output pages. Most importantly this optimization resulted in a significant performance boost when importing many PDF pages. - 2013-12-16 (bug #4632) The following functions used parameter names x_1, y_1 etc. instead of the documented names x1, y1 etc.: PDF_circular_arc(), PDF_curveto(), PDF_rcurveto(), PDF_shading() These have been changed to use the documented names. This requires corresponding adjustments in Objective-C language clients. - 2013-12-12 (bug #4629) The PDF/UA check in PDF_fit/info_pdi_page() incorrectly rejected documents with H1, H2 etc. heading elements on the same level with the message "Heading level 'H1' must not be skipped in weakly structured PDF/UA" although this construct is allowed if the headings appear in the correct order. ================================== PDFlib 9.0.1p5 (December 06, 2013) ================================== - 2013-12-06 (bug #4565) Implemented Automatic Reference Counting (ARC) in the Objective-C sample to reduce overall memory requirements of the sample application. - 2013-12-06 (feature #1630) Although not explicitly forbidden in ISO 32000-1, nested Artifacts within a structure element are considered incorrect. PDFlib now avoids this construct by automatically suspending and resuming the currently active structure element when an Artifact is created. Since this is not possible for pseudo elements and Span, Quote, Note, Reference, BibEntry, Code (with inline=true), Artifacts are no longer allowed if one of these elements is active. - 2013-12-05 (bug #4612) Due to improvements in the Java wrapper the "synchronized" keyword could be removed from the internal new() and delete() methods (except for i5). This results in a significant speedup of applications with a large number of simultaneous threads. - 2013-12-04 (feature #1649) Implemented the "Placement" suboption for the "tag" option and PDF_begin_item(). It helps in situations where a Figure element or other ILSE is placed as direct child of a grouping element. The new attribute avoids the "Possibly inappropriate use" warning in PAC 2. - 2013-12-04 (bug #4553) PDF_fit_textflow() could emit leading spaces at the beginning of a line if a space character appeared immediately after an inline option list. - 2013-12-03 (feature #1652) Updated the iOS build with support for iOS 7, XCode 5, and ARM 64-bit. - 2013-12-03 (feature #1639) PDF_open_pdi_page() now also imports the page transparency group by default if one is present in an imported page. This behavior can be controlled via the option "transparencygroup". The new keyword transparencygroup=none has been introduced, and the behavior of this option has been streamlined regarding PDF/A and PDF/X. Finally, some documentation bugs regarding this option have been fixed. - 2013-12-02 (feature #1660 and feature #1661) Tested PDFlib kernel and all relevant language bindings with Windows Server 2012 R2 and Windows 8.1. These systems are now part of the list of supported platforms. - 2013-11-29 (bug #4620) Text output with activated OpenType features and PDF_info_font() with the keyword "featurelist" could emit an incorrect error message "Font 'X': Tried to allocate 0 bytes in function tt_get_ligat_subst_format1" for OpenType fonts where the number of ligature components in the GSUB ligature substitution lookup table (format 1) was larger than the actual number of available components in the subtable. - 2013-11-28 (bug #4613) The XMP parser could confuse properties with the same name, but different namespace. This could especially affect the PDF/A identifier in the presence of a PDF/UA identifier, resulting in wrong values for the "pdfa" pCOS pseudo object. As a side effect of the change, non-conforming PDF/A documents with a wrong namespace URI are no longer treated as PDF/A. - 2013-11-28 (bug #4614) PDF_elliptical_arc() emitted an incorrect warning "Floating point parameter 'x_1' has bad value (not a number)" when the supplied end point (x, y) coincided with the current point. Now this situation is silently ignored. - 2013-11-25 (bug #4610) PDFlib could crash when the rdf:RDF node was missing from user-supplied XMP metadata. - 2013-11-20 (feature #1664) Implemented the "preservepua" font loading option which is particularly useful to make sure that Japanese Gaiji characters can be extracted correctly from the generated document. - 2013-11-20 (feature #1601) Declared PDF_begin_pattern() deprecated; use PDF_begin_pattern_ext() instead. - 2013-11-20 (feature #1158) Reorganized XMP parsing of PDI documents for more efficient access to standard identification properties. - 2013-11-18 (bug #4601) PDF_draw_path() with the option "clip" didn't work if none of the options "fillrule" or "cliprule" was supplied; the default was implemented incorrectly. - 2013-11-11 (bug #4588) PDF_fill_textblock() did not correctly process the "matchbox" option. - 2013-11-08 (bug #4589) PDF_fit_graphics() incorrectly scaled SVG graphics if the current transformation matrix included scaling. - 2013-11-08 (bug #4585) Added checks in the XMP engine to avoid problems when processing Description entries with an empty or missing xmlns attribute. - 2013-11-04 (bug #4584) The PDF output for the georeference options "mappoints" and "worldpoints" as well as the 3D options "camera2world" and "cameradistance" is automatically emitted with extended floating point accuracy to avoid rounding and truncation artifacts. - 2013-10-28 (bug #4509) Clarified the requirement of Microsoft redistributable runtime libraries for the .NET edition and updated the .NET HowTo correspondingly. - 2013-10-22 (feature #1651) If an element contains mixed content (direct content and structure elements) the kids are no longer sorted. This has previously been done to work around restrictions in Acrobat's Read Aloud and Reflow features, but results in undesired modifications to the client-provided tag structure. - 2013-10-21 (feature #1650) Changed the starter_pdfua1 samples to add another P element as parent of the Figure element. This more closely matches the recommended use of the Figure element. - 2013-10-21 (feature #1634) Reworked the starter_webform samples to simplify font handling as a benefit of the changes for feature #1625 and bug #4559. Since the Gentium font is no longer used in examples it has been removed from all packages. - 2013-10-18 (bug #4369) Clipping rectangles for SVG graphics could trigger an inappropriate error "Images and graphics must be tagged as 'Artifact', 'Figure' or 'Formula' in PDF/UA". Now they are automatically tagged as Artifact. ================================= PDFlib 9.0.1p4 (October 14, 2013) ================================= - 2013-10-14 (bug #4573) The "enumeratefonts" option didn't create a PostScript font name alias for TrueType fonts with a PostScript name which don't have any style specification. - 2013-10-14 (bug #4571) The deprecated functions PDF_get_pdi_value() and PDF_get_pdi_parameter() could issue a misleading error "Internal error: assertion failed" when document and page handles from different PDI documents were mixed. - 2013-10-14 (bug #4561) The starter_basic sample failed with Ruby 1.9 (but not Ruby 1.8 or 2.0) due to its use of UTF-8-encoded strings. This has been fixed by adding the "coding: utf-8" directive in the header. - 2013-10-11 (bug #4568) When a font was preloaded with embedding, PDF_fill_textblock() did not find the cached font, but tried to load it again without embedding. As a result an error message "Font must be embedded in PDF/A" was issued in PDF/A mode (similar for PDF/X and PDF/UA). - 2013-10-11 (bug #4570) Loading LWFN fonts with certain style properties on the Mac could result in a crash. - 2013-10-10 (bug #4567) Symbolic TrueType fonts could be force-subsetted even if subsetting=false was requested. - 2013-10-10 (feature #1625, bug #4559) Redesigned the treatment of fonts for form fields in an attempt to balance quirks in Acrobat's form handling with ISO 32000 and PDF/UA requirements. In the course of the redesign the font option "autocidfont" has been declared as deprecated. - 2013-10-09 (bug #4566) Using the "fakebold" option before placing an imported PDI page could incorrectly also embolden text on the imported page because the text state parameters were not correctly reset. - 2013-10-04 (bug #4473) Checked compatibility with OS X 10.9 ("Mavericks"). This involved a few changes in the build system and the Xcode project, as well as a Mac build for Perl 5.16. - 2013-09-30 (bug #4554) The SVG attributes "textLength" and "lengthAdjust" for vertical text (affected SVG elements: text, textpath, tref, tspan) are now ignored since they are not implemented for vertical text. =================================== PDFlib 9.0.1p3 (September 25, 2013) =================================== - 2013-09-25 (bug #4557) File access didn't work on MVS (bug introduced with the fix for bug #4527 in PDFlib 9.0.1p2). - 2013-09-24 (bug #4555) The glyph name table of Mac LWFN Type 1 fonts was not interpreted correctly resulting in unusable glyphs. - 2013-09-20 (bug #4552) The dummy appearances created for form fields contained incorrect name entries. Now an empty dummy Form XObject is created. =================================== PDFlib 9.0.1p2 (September 20, 2013) =================================== - 2013-09-20 (bug #4544) The REALbasic binding for Mac didn't support cross-compiling for Linux due to a packaging error. - 2013-09-19 (feature #1627) Implemented the option "checkoutputintentprofile" for PDF_open_pdi_document(). Setting it to false reduces memory requirements if PDF/X or PDF/A documents are imported which are known to contain correct output intent ICC profiles. - 2013-09-19 (bug #4548) Avoid parsing the output intent ICC profile of PDF/A or PDF/X input documents if no PDF/A or PDF/X output is created in order to reduce memory requirements. - 2013-09-18 (bug #4547) The final byte in Base64-encoded data could be missing or wrong, resulting in inappropriate error messages or warnings for image, graphics or other data embedded in SVG. - 2013-09-18 (bug #4546) Using layers could result in an empty /AS entry although this entry is not allowed in PDF/A, PDF/UA, and PDF/X. Now the empty dictionary is suppressed to avoid validation errors (it didn't do any real harm). - 2013-09-17 (bug #4545) The PDF/UA standard identifier XMP property "pdfuaid" could get lost for user-supplied XMP with multiple namespace declarations for an element. - 2013-09-16 (bug #4540) Work around a compiler bug in the Borland/Embarcadero 64-bit compiler which could result in a crash when loading PNG or TIFF images. - 2013-09-16 (bug #4542) Empty XMP files for the "metadata" option triggered an internal error. Empty files for the "attachments" option were rejected. - 2013-09-12 (bug #4532) Invalid XMP was emitted if the input XMP contained properties in attribute syntax which contained "&" or other characters which cannot be written as literals, but require character references. - 2013-09-11 (bug #4515) Added new suboptions "strokecolor", "strokewidth" and "textrendering" for the "shadow" text option to enhance control over shadowed text in combination with textrendering modes. - 2013-09-11 (feature #1622) Support the "iccprofile" option for BMP, CCITT, GIF, JPEG 2000 and raw images (in addition to the existing support for JPEG, JBIG2, PNG, and TIFF). - 2013-09-11 (bug #4527) Incorrect out-of-memory errors could occur if a file name was supplied which didn't point to a regular file (e.g. a directory). - 2013-09-11 (bug #4531) PDF_load_iccprofile() could issue a confusing warning "Option 'embedprofile' ignored" even if this option wasn't provided by the user. - 2013-09-10 (bug #4539) The option "iccprofile" of PDF_load_image() was ignored for JBIG2 images. - 2013-09-09 (bug #4526) PDF_fit_textflow() could emit wrong glyph IDs (resulting in garbled text) for SID OpenType fonts if more than 256 different glyphs were used and a certain rare condition was true at the end of a text output chunk. - 2013-08-14 (bug #4523) JPEG 2000 images could incorrectly be written with the entry /SMaskInData if the "masked" option was supplied to PDF_load_image(). Even if "ignoremask" was set for JPEG 2000 images, they were considered as transparent nevertheless. ================================ PDFlib 9.0.1p1 (August 13, 2013) ================================ - 2013-08-13 (bug #4518) The "display" option of PDF_create_annotation() and PDF_create_field/group() did not correctly process the "noview" option: the annotation or field was invisible on print and visible on screen (instead of vice versa). - 2013-08-13 (bug #4521) Creating page content in PDF/X mode without prior setting the output intent was rejected with a confusing message. Now a message is emitted which directly mentions the reason of the problem. - 2013-08-07 (bug #4516) PDF_open_pdi_document() with inmemory=true could cause a crash. - 2013-08-05 (bug #4508) convert_to_unicode() in the .NET and COM bindings cut off the generated string after the first character. - 2013-08-05 (bug #4507) Detect Apple's sbix-based bitmap fonts and reject them with a suitable message. - 2013-08-05 (bug #4502) PDF_info_textflow(): the value of "lastfontsize" could be wrong if "fontscale" was applied. - 2013-07-31 (bug #4497) Follow-up to bug #4482: "replacementchar" was still forced to "error" in another place. As a result, custom replacement characters could not be used in PDF/X-4/5, PDF/A-2/3, and PDF/UA. - 2013-07-29 (bug #3842) The starter_fallback sample didn't work on MVS because the data directory did not contain the required CMaps with short MVS file names. ============================ PDFlib 9.0.1 (July 29, 2013) ============================ - 2013-07-29 (bug #4495) Empty values for the "userpassword" and "masterpassword" options have not been treated correctly in non-Unicode-aware language bindings with stringformat=utf8; similar for an empty value of the "searchpath" option. An empty value for the option "outputformat" of PDF_convert_to_unicode() has incorrectly been rejected instead of being interpreted as "utf16". - 2013-07-24 (bug #4488) The combination of the options "enumeratfonts" and "saveresources" didn't treat file names with non-ASCII characters correctly on Windows. - 2013-07-24 (bug #4432) Added support for the REALbasic successor Xojo. - 2013-07-24 (bug #3842) Fixed searchpath problems in the C samples for MVS. - 2013-07-24 (bug #4487) PDF_create_field/fieldgroup() didn't process some options correctly with C++ on EBCDIC platforms if the corresponding font was loaded with a non-EBCDIC encoding. The following parameters were treated incorrectly as UTF-8 in the .NET, Perl, Python, REALbasic, Tcl, Objective-C, and COM bindings: PDF_get_option(), parameter "keyword" PDF_load_asset(), parameter "type" PDF_load_graphics(), parameter "type". - 2013-07-24 (bug #4485) PDF_create_field/fieldgroup() didn't process some options correctly with Java on EBCDIC platforms if the corresponding font was loaded with a non-EBCDIC encoding. - 2013-07-24 (bug #4486) The "tagname" parameter of PDF_begin_item() was not processed correctly in the Java binding if it contained non-ASCII characters. - 2013-07-23 (bug #4381) Fixed problems in the C samples for MVS related to encoding and textformat issues. - 2013-07-21 (bug #4417) Use double braces for the "searchpath" entries in all samples to caution users because otherwise path entries containing a space character would be interpreted as two separate entries. - 2013-07-18 (bug #4482) The font option "replacementchar" is no longer forced to "error" in PDF/A-2/3, PDF/UA and PDF/X-4/5 modes to allow clients to visualize problematic text portions. - 2013-07-17 (feature #1596) Modified the handling of H7, H8 etc. so that they are no longer treated as standard elements, but require rolemap entries. Since PDF/UA consumers are advised to ignore the rolemapping PDFlib also ignores the rolemaps of H7 etc. in PDF/UA mode (other than writing them to the PDF output). - 2013-07-16 (bug #4479) Patterns were displayed differently depending on whether the "topdown" option was supplied to PDF_begin_page_ext() or to PDF_set_parameter(). - 2013-07-10 (bug #2558) Introduced a new PECL package for building a PDFlib 7/8/9 DSO for use with PHP. - 2013-07-10 (bug #4476) Matchbox decorations created for SVG graphics were slightly displaced in a topdown coordinate system. - 2013-07-09 (bug #4474) Graphics could have a wrong matchbox if all of the following conditions were true: fitmethod=clip, the height of the graphics is larger than the height of the fitbox, and a topdown coordinate system is active. - 2013-07-09 (spin-off of feature #1582) Implemented the option "transform" for PDF_begin_template_ext(). - 2013-07-09 (feature #1582) Implemented an extended pattern interface in PDF_begin_pattern_ext(); currently it is only available in the C and C++ language bindings. - 2013-07-08 (bug #4445) Textflow could split the text in an unexpected way with verticalalignment= bottom or center and wrap boxes which resulted in increasing line widths towards the bottom of the fitbox. - 2013-07-05 (bug #4466) With errorpolicy=return PDF_end_page_ext() could throw an exception "Unmatched save level" if a prior call to PDF_fill_textblock() failed due to a missing font. - 2013-07-02 (bug #4460) If an SVG font does not include any glyph for the space character an artificial empty glyph is created. In order to match the behavior of browsers this artificial space glyph is used instead of the missing-glyph even if it is present in the font. - 2013-07-02 (bug #4456) Fixed a packaging problem (wrong lineend charactes) with the CMap package for MVS. - 2013-07-02 (bug #4458) PPS: if the Block property "features" was set together with one or more other text properties PDF_fill_textblock() did not apply OpenType features correctly. - 2013-07-01 (bug #4451) Tuned the XMP implementation as follows: - XMP metadata supplied in PDF_end_document() can override XMP supplied in PDF_begin_document(). - If multiple chunks of XMP contained the same properties duplicate entries could result in the merged output. Such duplicates are now detected and avoided. - 2013-06-28 (bug #4447) Set the glyph bit in the CIDSet stream in PDF/A-1 mode even for glyphs without an outline to satisfy the stricter PDF/A-2 check in Acrobat XI Preflight. This is required for workflows which create PDF/A-1 and later import it into a PDF/A-2 document. The CIDSet stream could contain an extra null byte at the end. - 2013-06-28 (bug #3467) Increased the assumed resolution value which is used for scaling SVG graphics where no viewBox attribute is present and the viewport size is specified in pixels. - 2013-06-28 (bug #4454) Modified the clipping behavior for the outermost viewport of SVG graphics. According to the SVG specification SVG graphics are now clipped only for stand-alone graphics, i.e. SVG where width and height of the outermost viewport are not specified as percentage. - 2013-06-28 (bug #4440) SVG gradients with gradientUnits="objectBoundingBox" were missing if they were referenced from a text element. - 2013-06-26 (bug #4441) PDFlib did not emit a /ModDate entry for PDF/A-3 associated files if the attachment was loaded from a PVF file. - 2013-06-24 (bug #4434) PDF_process_pdi() with "action=copyoutputintent" now silently does nothing if the input document doesn't contain any output intent. This facilitates blind cloning of PDF/A documents which don't necessarily contain an output intent. - 2013-06-21 (bug #4437) XMP handling for PDF/A: improved the error message if a custom XMP property without PDF/A extension handling was found. - 2013-06-21 (feature #1580) Implemented stricter XMP namespace checks for PDF/A-2 and PDF/A-3 to follow the XMP 2005 spec and match the behavior of Acrobat Preflight: namespace URIs are now required to end in a "/" or "#" character. Otherwise the XMP will be rejected. - 2013-06-18 (bug #4433) The XMP processor incorrectly rejected PDF/A XMP with an extension schema if the metadata properties for the extension schema were contained in the same rdf:Description node as the corresponding extension schema description. ============================== PDFlib 9.0.0p4 (June 17, 2013) ============================== - 2013-06-17 (bug #4426) Host font support didn't work in the 32-bit build for Borland/Embarcadero. - 2013-06-17 (feature #1572) Relaxed handling of file size and object limits in PDF/A and PDF/X as follows: - Due to practical demand and consensus with other vendors the 2GB file size limit is no longer enforced. This is particularly relevant for PDF/VT workflows. - The check for the 8M limit for the number of indirect objects can be disabled with the new document option "limitcheck". - 2013-06-14 (bug #4422) Optimized the linearization of large PDF/VT documents with a DPart hierarchy. This significantly reduces processing time and output file size. - 2013-06-13 (bug #4425) Detect errors in invalid BMP image files related to too few image data. Missing image parts will be filled up with white pixels. - 2013-06-13 (bug #4418) Modified the C++ sample project for the Borland/Embarcadero compiler to turn off optimization. This is required to work around an optimizer compiler bug related to C++ string handling. - 2013-06-11 (feature #1572) Increased the maximum number of entries in the "dasharray" option from 8 to 12 to meet the requirements of demanding graphics applications. - 2013-06-11 (feature #1430) Enhanced the interpretation of OpenType features to support lookup types 2, 5, and 6. These context-sensitive lookups are required e.g. for fonts which resemble cursive handwriting. As a follow-up the OpenType features "calt", "ccmp", "clig", and "cswh" are now also supported. - 2013-05-08 (feature #1564) Enhanced the treatment of clipping paths in Tagged PDF. ============================== PDFlib 9.0.0p3 (June 05, 2013) ============================== - 2013-06-05 (bug #4415) PDF_info_textline() with the keyword "unknownchars" would incorrectly throw an exception "Glyph id 0 (notdef character) not allowed" in PDF/A-2/3, PDF/UA and PDF/X-4/5 mode if the tested string contained a character for which no glyph was available in the font. - 2013-06-04 (bug #4412) Improved the accuracy of bounding box calculations for Bezier curves in image clipping paths to avoid inaccurate image placement in cases with large Bezier segments. - 2013-06-03 (bug #4407) SVG patterns could be rendered incorrectly if the global option "topdown" was set. - 2013-06-03 (bug #4404) The text option "fontstyle=bold" in combination with "topdown" incorrectly increased the font size. - 2013-06-03 (bug #4400) The option "checkcolorspace" was incorrectly documented as "colorspacecheck". - 2013-05-31 (bug #4409) The global option "topdown" was not treated as Boolean type so that the variant "notopdown" didn't work. - 2013-05-28 (bug #4405) Added C++ support files to the Borland package. - 2013-05-27 (bug #4399) Option lists with a leading UTF-8 BOM and a space character before the first option were incorrectly rejected. - 2013-05-23 (bug #4394) The global option "topdown" was not honored in PDF_begin_template_ext(). - 2013-05-22 (bug #4342) Fixed searchpath problems with the C mini samples on MVS. - 2013-05-22 (bug #4387) PDFlib didn't work with Ruby 2.0 on Windows. - 2013-05-22 (bug #4391) Resetting the transparency blending mode with "blendmode=None" didn't work. - 2013-05-17 (bug #4377/feature #1230) Files attached with PDF_add_portfolio_file() were not associated with any document component in PDF/A-3 mode. Now they are implicitly associated with the whole document. - 2013-05-16 (bug #4357) Automatically create a transparencygroup entry for the page if an image with a color key mask was placed. These are created from PNG and GIF images with a single transparent color value or PNG with a single transparent entry in the tRNS chunk. Strictly speaking this shouldn't be requires since no real transparency is involved, but it significantly improves the screen display in Acrobat. - 2013-05-16 (bug #4352/REOPENED) While the previous fix worked, it had been applied only to PDF_xshow(), but not PDF_fit_textline(). - 2013-05-13 (bug #4380) The table formatter could chop off some contents of a textflow cell in the last row. Now an error message is emitted if the Textflow cannot be squeezed into the cell according to the specified shrinking limits. ============================= PDFlib 9.0.0p2 (May 08, 2013) ============================= - 2013-05-08 (bug #4379) Replaced stray non-ASCII characters in the description text of the FOGRA15 and FOGRA23 standard output intents for PDF/X-3. - 2013-05-08 (bug #4368) The final output file (as opposed to the temporary file) is now opened in PDF_begin_document() even with the "linearize" and "optimize" option to make sure that problems with opening the file are already diagnosed when starting a document instead of in PDF_end_document(). - 2013-05-06 (bug #4375) The global "usercoordinates" setting was not correctly honored in PDF_create_field(). - 2013-05-02 (bug #4360) XMP properties in the "pdfx" (PDF eXtended) namespace were rejected in PDF/A mode even if the corresponding extension schema description was present. As a side effect of this change incorrect namespace prefixes within PDF/A extension schema descriptions are now corrected. - 2013-04-29 (bug #4372) SVG: fixed incorrect treatment of large numerical values in the scanner. - 2013-04-29 (bug #4371) Reinstalled the former treatment of invalid Rational entries in TIFF images so that denominator=0 is again treated as 1 (e.g. to avoid unreasonable resolution values). - 2013-04-22 (bug #4352) PDF_xshow() and PDF_fit_textline() with the "xadvancelist" option produced wrong output, wrong metrics and/or the inappropriate error message "Floating point number xtoo large" if the text contained text layout control characters of the following list: NBSP NNBSP ZWNJ ZWJ LRM RLM LRE RLE PDF LRO RLO - 2013-04-22 (bug #4353) A misleading message "File 'xxx.PFB' does not seem to be an SVG file" was emitted if a FontOutline resource was configured for a font which was neither TrueType nor OpenType, and no corresponding AFM or PFM file was configured. Now the more appropriate message "AFM or PFM font metrics file not found" is produced. - 2013-04-16 (bug #4350) A crash could occur if pCOS accessed an invalid UTF-8 sequence and neither CMaps nor cpxxxx host encodings were available. - 2013-04-11 (bug #4347) Compressed stream data was truncated if the uncompressed stream input exceeded 4GB. - 2013-04-11 (bug #4348) PDFlib builds without encryption support (PDF_FEATURE_SECURITY) didn't work. =============================== PDFlib 9.0.0p1 (April 09, 2013) =============================== - 2013-04-09 (bug #4344) In case of an ICC profile mismatch (e.g. CMYK profile instead of RGB) the error message didn't include the name of the profile. - 2013-04-09 (bug #4342) Importing Tagged PDF documents into an untagged document without closing the documents resulted in the following exception in PDF_delete(): "Illegal array index 1 in function pdc__vtr_at". - 2013-04-09 (bug #4330) Fixed a crash when loading large TIFF images with (width*height*bpc*components)/8 > 4GB. - 2013-04-08 (bug #4245) Switched the build process for the Ruby binding on Windows to MinGW to support Ruby 1.9 and above. - 2013-04-07 (bug #4329) Deriving a PHP class from the PDFlib class could result in a crash. - 2013-04-03 (bug #4333) Fixed a memory leak for TIFF images which are handled in raw pixel mode and have an orientation tag. - 2013-03-27 (bug #4318) Modified the treatment of SVG viewports with percentage values. - 2013-03-25 (bug #4327) Fixed a memory leak in PDFlib-only source code packages. - 2013-03-21 (bug #4325) Fixed a problem with the calculation of matchboxes in a Textflow. - 2013-03-21 (bug #4326) Fixed a problem with compiling source code packages on Linux 32-bit. ============================= PDFlib 9.0.0 (March 14, 2013) ============================= - Implements a variety of new features and options, see PDFlib Tutorial and API Reference for details.