================================== PDFlib 6.0.4 (February 12, 2007) ================================== - 2007-02-08 (bug #695) PDFlib could crash when an exception occurred and a page with annotations had been suspended while no page was open. - 2007-01-26 (bug #1090) Loading an ICC profile as output intent (option usage=outputintent in PDF_load_iccprofile()) is now also supported if the output document is neither PDF/A nor PDF/X. - 2007-01-12 (bug #1064) PDF_fit_textflow() with the "blind" option changed the current text position although it is document not to do so. - 2007-01-02 (bug #1035) Reject the value 0 for the "xstep" and "ystep" options of PDF_begin_pattern(). - 2007-01-02 (bug #1033) Reject recursive use of a pattern handle within the definition of the pattern. - 2006-11-27 (bug #940) PDFlib could crash in PDF_delete() if one of the following functions returned -1 because of an out-of-memory situation: PDF_open_pdi(), PDF_open_pdi_document(), PDF_open_pdi_callback(), PDF_open_pdi_page(), PDF_process_pdi(), PDF_fill_textblock(), PDF_fill_imageblock(), PDF_fill_pdfblock(). - 2006-11-27 (bug #978) The "ignoreorientation" option of PDF_load_image() did not have any effect. - 2006-11-21 (bug #929) The deprecated functions PDF_setgray_stroke() and PDF_setgray_fill() were listed in the PDFlib API structure (for dynamic loading) in wrong order. The deprecated function PDF_setrgbcolor_stroke() no longer worked. - 2006-11-21 (bug #781/reopened) Changed the memory allocation strategy for creating PDF output in memory in order to reduce the memory requirements for large documents. ================================== PDFlib 6.0.3p8 (November 10, 2006) ================================== - 2006-11-10 (bug #952) Use compiler/linker options for thread-safe C runtime environment on AIX. - 2006-10-27 (bug #925) Fixed a crash when PDFlib ran out of memory while trying to allocate more pages. - 2006-10-27 (bug #932) Flate-compressed TIFF images with MINISWHITE=1 appeared inverted in passthrough mode. - 2006-10-18 (bug #911) Fixed a platform-specific problem in the JPEG2000 parser which showed up on Solaris. ================================= PDFlib 6.0.3p7 (October 17, 2006) ================================= - 2006-10-17 (bug #907) Removed a type cast which caused wrong data type handling with the Borland compiler when a large number of images with Indexed or ICCBased color space was loaded (exception "Unknown color space"). - 2006-10-16 (bug #907) Improved the contents of an internal error message for image color spaces. - 2006-10-13 (bug #908) PDI didn't accept input PDFs with an indirect /Count entry in the /Pages dictionary (these are rare, but legal). - 2006-10-02 (bug #894) If the value of the "menuitem" option of PDF_create_action() contained whitespace the generated PDF would suffer from a syntax error. =================================== PDFlib 6.0.3p6 (September 29, 2006) =================================== - 2006-09-29 (bug #672) Builds on Solaris where missing the "D_REENTRANT" define which caused problems with invalid errno values after calling fopen(). - 2006-09-27 (bug #672) 32-bit builds of PDFlib could run out of file handles under Solaris due to a documented problem in the C runtime provided by the system. PDFlib builds now work around the problem by integrating stdio functions from an alternate implementation. 64-bit builds and other platforms are not affected. - 2006-09-26 (bug #884) Fixed a problem with OpenType/CFF subsetting which happened with a rare flavor of OT/CFF fonts (SIDs which are not listed in ascending order in the Charsets data of the CFF table). As a consequence of the bug, Acrobat would mix up glyphs from the font subset. - 2006-09-25 (bug #887) The "pdfx" keyword of PDF_get_pdi_parameter() incorrectly reported non-PDF/X files with an empty string instead of the documented string "none". - 2006-09-22 (bug #881) Text with negative character spacing was not correctly right-aligned in PDF_fit_textline(). - 2006-09-16 (bug #882) C++ binding: avoid the "using namespace..." directive in pdflib.hpp since it may force undesired namespaces upon application code. - 2006-09-08 (bug #876) Redundant data could be stored in the PDF document if non-standard encodings were used. Now the output files are slightly smaller in this case. - 2006-08-21 (bug #847) Fixed two bugs in the text file reader (used for UPR files): - The combination of \ (line continuation) and empty lines wasn't handled correctly; the line after the empty line was incorrectly concatenated. - The sequence "\\%" was incorrectly resolved to "\%" and the comment remained part of the retrieved line. - 2006-08-15 (bug #829) Textflow didn't format text lines correctly for alignment=justify or lastalignment=justify if the line contained exactly two words. - 2006-08-10 (bug #830) Added checks to make sure that an embedded ICC profile is used as output intent (as opposed to standard output intent names without an embedded profile) for PDF/X-3 when ICC-based or Lab images are used. - 2006-08-04 (bug #825) Invalid font subsets could be produced for OpenType CFF fonts if the very last glyph in the font was used in the document. Acrobat would complain "Cannot extract embedded font XXX" in this case. ================================ PDFlib 6.0.3p5 (August 04, 2006) ================================ - 2006-08-04 (bug #821) Backslash escaping of {, } and \ characters in option lists didn't work if the option was part of a subordinate option list; an incorrect exception "Braces aren't balanced" would be thrown even if the critical character was escaped with a backslash. - 2006-08-03 (bug #824) Due to wrong encoding conversion incorrect text output would be produced under the following rare combination of conditions: an 8-bit encoding was used with textformat=utf16xx, charref=false, and the text was not used for Textflow. PDFlib incorrectly treated the bytes within a UTF-16 sequence as byte codes in the specified encoding. The bug only happens if the Unicode value differs from the actual code value. - 2006-07-28 (bug #667) Adds the C runtime DLL msvcr71.dll to the PDFlib.NET distribution package since it is required for use with the .NET 2.0 runtime (if the SDK is not installed). - 2006-07-28 (bug #818) Reject uncompressed 16-bit CMYK TIFF images since support for these is not currently implemented, and they would result in bad PDF output. - 2006-07-07 (bug #792) The function PDF_utf16_to_utf8() (which is called internally in all language bindings for Unicode-capable languages, e.g. Java) could leak memory if PDF_begin/end_document() was not called. This could happen if PDI was used only to query input documents, without actually performing any page import. - 2006-06-21 (bug #781) In-memory generation (empty filename in PDF_begin_document()) produced far too many calls to realloc(), which could result in severe performance degradation under .NET, and sometimes even with plain C programs. - 2006-06-21 (bug #784) If a TrueType font contained a kerning table with zero entries an exception "Tried to allocate 0 or negative number of bytes in function tt_get_tab_kern" would be thrown. - 2006-06-20 Added PDF 1.7 preparations. - 2006-06-19 (bug #779) Accessing host fonts with PHP on the Mac resulted in an error "dyld: lazy symbol binding failed: Symbol not found: _FMGetFontFamilyFromName" due to a build problem with the PDFlib extension for PHP. ============================= PDFlib 6.0.3p4 (May 31, 2006) ============================= - 2006-05-31 (bug #761/reopened) Removed a "workaround for a libtiff bug" which was actually wrong. The wrong workaround has been implemented based on misleading test images and the fact that the Windows XP image viewer actually displays the affected CCITT-compressed TIFF images with photometric=1 (BlackIsZero) wrongly. These images have been inverted by PDFlib in non-passthrough mode, which is now fixed. - 2006-05-30 (bug #761) Disabled pass-through mode for TIFF images with more than 25 strips to avoid banding artifacts with page display in Acrobat, and file size bloat in situations with many small strips which end up as separate images in the PDF output. - 2006-05-29 (bug #736) Textflow would emit hyphen characters for each softhyphen within an "avoidbreak" snippet. The softhyphens will now be ignored if the text snippet contains semantic (Unicode) text. - 2006-05-29 (bug #753) The "adjustpage" option of PDF_fit_pdi_page() and PDF_fit_image() didn't reset user-provided values for the Art/Bleed/TrimBox entries (only CropBox and MediaBox were reset). - 2006-05-29 (bug #759) An infinite loop could happen in Textflow with the (slightly nonsensical) combination of "maxlines", "fitmethod=auto", and forced linebreaks within the text. - 2006-05-29 (bug #756) Textflow didn't honor a BOM at the beginning of a text snippet starting with a BOM if the snippet didn't have a corresponding textlen option. Also, a text snippet consisting of a BOM only was not treated as empty text (an exception would be thrown if no font/fontsize was specified for such a snippet). - 2006-05-29 (bug #763) Entries in a font's ToUnicode CMap could be subtly wrong for TrueType and OpenType fonts with an encoding different from "winansi" and "macroman" if a glyph contained multiple Unicode mappings in the font. In this situation the last Unicode value found in the font was used instead of the first. This problem was mostly visible for hyphen-minus characters which were misrepresented as softhyphen in the ToUnicode CMap. As a result, Acrobat would drop the minus character from selected text if it was surrounded by other text. - 2006-05-15 (bug #751) Due to a typo, font resource ids were used instead of layer resources when PDF_suspend_page() or PDF_begin_layer() were called. This would have led to incorrect PDF output when a page using layers would have been suspended. - 2006-05-06 (bug #711) File in the search path wouldn't be found if the current directory (or some other directory in the search path which was searched before the actual file was supposed to be found) didn't have read access. The fix for this problem creates a minor incompatibility: if two files with the same name exist in the search path, and the first is the desired one but cannot be opened, PDFlib will now open the second (which may be undesired). Previously an error was reported upon trying to open the first file. - 2006-05-03 (bug #743) The Textflow engine didn't find the begoptlistchar for starting an inline option list ("Begin character U+xxxx for inline option list not found") under very specific circumstances: - begoptlistchar was defined as a character > U+007F - textlen was set in an inline option (e.g. for symbol fonts) - textformat=utf16, especially for Unicode-capable language bindings such as Java, COM, .NET, Tcl, REALbasic. - 2006-05-03 (bug #117) compatibility=1.6 resulted in a duplicate version header in the PDF output. - 2006-04-27 (bug #738) Removed a leftover printf() statement in the JPEG parser. This only fires in the very rare case of subtly damaged JPEG files which are rejected by the JPEG transcoding process, and cause libjpeg to stop processing. =============================== PDFlib 6.0.3p3 (April 27, 2006) =============================== - 2006-04-27 (bug #738) Improved error reporting for JPEG transcoding by including the libjpeg error message in the PDFlib error message when transcoding fails. - 2006-04-27 (bug #739) CCITT3-compressed TIFF images with photometric interpretation min-is-black appeared inverted. This is actually the behavior of the Windows XP image viewer and QuickTime, but most other viewers interpret the tag as required by the TIFF spec, so we changed PDFlib's behavior. - 2006-04-21 (bug #733) The following obvious restriction was not mentioned in the manual: an image mask must be a grayscale image. The restriction is enforced in the code only if the "mask" option was supplied, but since PDF 1.4 this is no longer required, and therefore the test was no longer performed. As a result of the missing check invalid PDF could be produced when supplying a non- grayscale image (including palette images, e.g. GIF) for the "masked" option. - 2006-04-21 When a GIF or JPEG image was used as mask in PDF 1.3 mode (which is not allowed) the corresponding error message wasn't hooked up properly, resulting in an empty string returned by PDF_get_errmsg() after the failed call to PDF_load_image(). - 2006-04-21 (bug #142/reopened) Textflow: inline text options could get lost in a sequence of option lists, e.g. TEXTATEXTB Here TEXTB didn't get the option . - 2006-04-21 (bug #730) PDF_info_textflow(): the textendx/y keywords did not take into account horizontal tabs at the end of the text, but before a "return" statement. - 2006-04-21 (bug #721) PDF_create_field()/PDF_create_fieldgroup(): due to a bug in Acrobat the default setting was not visible for radiobuttons and check button using an itemname. We worked around this Acrobug by avoiding the /Opt entry (but set the export value directly) if all item names can be mapped to PDFDocEncoding. - 2006-04-20 (bug #734) Character reference replacement didn't work (i.e. the option "charref" was ignored) in the following situations: - Functions with an option list containing hypertext strings (e.g. PDF_create_field()) - Functions with a hypertext string parameter (e.g. PDF_create_bookmark()) - 2006-04-20 (bug #732) Specifying glyphname=NULL in PDF_begin_glyph() resulted in a crash. - 2006-04-20 (bug #729) Opening a standard CJK font first with a CMap and then again with another encoding resulted in a crash. - 2006-04-18 (bug #68/reopened) The workaround for incomplete Flate-compressed streams introduced on 2004-11-17 could result in problems with various PDF consumers including Ghostscript ("Error: /ioerror in --token--) and some Adobe-based RIPs ("Error while parsing a Form, Type 3 font, or Pattern"). In order to reliably fix the problems in the input PDF the new option "passthrough" can be used in PDF_open_pdi_page(). This will ensure flawless output even for this kind of damaged input. By default it is false, however, since performance goes down by a factor of 3 to 5 in some cases. - 2006-04-13 (bug #726) Intelligent glyph replacement was not activated for core fonts. For example, nbspace or sfthyphen should have been replaced with space and hyphen, respectively, but in Textflow they caused a warning "Can't show character with Unicode value U+xxxx". - 2006-04-11 (bug #722) Textflow: hyphenchar=none (or U+0000) didn't disable the hyphen character for encoding=unicode (the default hyphen character U+002D still appeared). =============================== PDFlib 6.0.3p2 (April 10, 2006) =============================== - 2006-04-10 (bug #720) Relaxed the scopes of PDF_stringwidth(), PDF_stringwidth2(), PDF_findfont(), and PDF_load_font() to also allow path and font scope. - 2006-04-06 (bug #719) Type 3 fonts could trigger the message "Invalid Type 3 font" in Acrobat if they referred to another font for defining the glyph descriptions. This was the result of an initialization problem with the text and graphics state, and happens only under very specialized circumstances. - 2006-04-04 (bug #717) Fixed several typos in configure.in related to Ruby configuration. The configure script always thought that a working version of Ruby has been found; subsequently the "make" run would fail when attempting to build the Ruby wrapper. - 2006-03-29 (bug #716) Textflow: if fitmethod=auto was used in the second and subsequent calls to PDF_fit_textflow(), but not the first one, the text from the first box would be repeated in the subsequent boxes. - 2006-03-24 (bug #568) Fixed host font support on Intel-based Mac OS X: TrueType host fonts were not found at all, and embedding outline data of PostScript Type 1 (LWFN) fonts didn't work. - 2006-03-21 (bug #708) With a topdown coordinate system and top/bottom margins PDF_fit_textline() placed text too low (twice the margin amount). =============================== PDFlib 6.0.3p1 (March 20, 2006) =============================== - 2006-03-17 (bug #707) The spot color names "All" and "None" raised an exception in PDF_fill_*block(), which was not correct. - 2006-03-13 (bug #167/reopened) PDFlib would grow its internal page buffer without ever flushing it when the client produced very complex page contents. The buffer now maintains a fixed size for the page content stream. For large data chunks (e.g. image data) it no longer grows exponentially, but in a linear fashion. - 2006-03-13 (bug #690) PDI rejected by PDF files with certain kinds of garbage after the final %%EOF line. Such files are now accepted and properly imported. - 2006-03-13 (bug #693) Emit a more comprehensive message when links are created to a target page which does not exist. - 2006-03-10 (bug #696) Textflow: fitmethod=auto didn't work if the font size was greater or equal to the height of the box (no output would be produced). This also affected text blocks with textflow=true. - 2006-03-10 (bug #697) The prototype for PDF_suspend_page() was wrong in the RPG binding. - 2006-03-07 (bug #692) PDFlib could crash when converting OpenType fonts to CID fonts if the "Notice" and "Copyright" entries in the font's TOP dict used the same SID. ================================ PDFlib 6.0.3 (February 28, 2006) ================================ - 2006-02-28 (bug #691) Using the "inline" option of PDF_load_image() with precompressed data triggered an error message in Acrobat "Expecting 'EI' while parsing an image". - 2006-02-27 (bug #689) PDF_begin_document() did not reject the "plainmetadata" keyword of the permission option for compatibility < PDF 1.5. - 2006-02-27 (bug #553) Fixed a bug related to importing encrypted files with certain rare password characteristics. - 2006-02-24 (bug #688) In Textflow the treatment of center, right, and decimal tabs was wrong when leftindent and/or parindent was set: the amount of left/parindent was not subtracted from the current tab position. - 2006-02-23 PECL package for PHP: updated the link to the PDFlib Lite license document and fixed a build problem (http://pecl.php.net/bugs/bug.php?id=3554). - 2006-02-23 (bug #683) Clarified the error message for invalid use of the "fontstyle" option. - 2006-02-21 (bug #682) Implemented the "destname" and "hypertextencoding" options for PDF_end_document(). - 2006-02-21 (bug #677) Implemented the "search" option for PDF_begin/end_document(). - 2006-02-17 (bug #554) For bad CCITT-compressed TIFF images containing both G3 and G4 options read only those options which match the actual compression scheme in the file. Otherwise libtiff gets confused and reports the wrong CCITT options to PDFlib, which consequently generates bad PDF output. As a result, Acrobat would correctly complain "Insufficient data for an image". - 2006-02-17 (bug #422) Added Java and Tcl versions of the chartab and hello samples for the PDFlib Lite package which use "winansi" encoding instead of "unicode", since PDFlib Lite does not offer Unicode support. - 2006-02-16 (bug #679) The "R" keyword of the "style" suboption of the "label" option in PDF_begin/end_page_ext() and the "labels" option in PDF_begin/end_document() did not produce uppercase Roman numerals, but lowercase Roman numerals just like the "r" keyword. - 2006-02-16 (bug #423) Always apply "modern" encryption style (/V 4 /R 4) for PDF >= 1.5 output; previously this was only done if the plainmetadata permission was set. - 2006-02-15 (bug #671) No longer increase the bit depth of 1-bit TIFF images to 8 bits in non-passthrough mode. This brings down file size significantly in those cases where the "nopassthrough" option is required to work around problems with damaged compressed TIFF image data. With the default settings this optimization will not have any effect. - 2006-02-09 (bug #674) Fixed linkage problems on Solaris x86 when using the precompiled PDFlib binary (built with gcc) and the Solaris compiler/linker for the application ("ld: fatal: Symbol referencing errors" with __eprintf). - 2006-02-08 (bug #486 and bug #628) The JPEG module now transcodes JPEG images by default in order to catch those (rare) cases where transcoding is required for proper display in Acrobat although no specific transcoding criteria are met. - 2006-02-08 (bug #91) Search the registry key "HKLM\Software\PDFlib\PDFLIBLICENSEFILE" on Windows in order to locate a license file for all PDFlib GmbH products (and all versions thereof). - 2006-02-08 (bug #670) Implemented the "nodemostamp" parameter which can be used to avoid the demo stamp when no valid license key was found, and raise an exception instead. - 2006-02-07 (bug #575) Improves the pdfimage sample program: Added a command-line option for passing an option list to PDF_load_image(). "make install" will now install the pdfimage and text2pdf sample programs. - 2006-01-26 (bug #648) Check all incoming floating point parameters against infinity and the range of legal values to guard against bad client data. Similar checks are implemented internally to avoid malformed PDF output in case of wrong calculation results. ================================= PDFlib 6.0.2p6 (January 30, 2006) ================================= - 2006-01-29 (bug #663) OJPEG-compressed TIFF images with corrupt entries in the AC Huffman tables could cause a crash. Now we check the table entries for validity. - 2006-01-27 (bug #653) The distance between the first line in a fitbox and the top border of the fitbox could be wrong for the second and subsequent fitboxes of a Textflow when "verticalalign" was different from "justify". - 2006-01-26 (bug #648) Detect invalid floating point numbers which are passed to the PDFlib API, and improves the check for valid numbers when creating PDF output. This helps us detect bad client data and prevent corrupt PDF output. - 2006-01-26 (bug #660) Implemented pass-through mode for certain kinds of OJPEG-compressed TIFF images which can be interpreted as JPEG files. This results in faster processing and much smaller output. - 2006-01-25 (bug #649) Emit a clearer exception message in PDF_fill_textblock() when a block uses a custom spot color which has not been defined. - 2006-01-24 (bug #654) TTC font files were not found in the search path when a font from the collection was selected with a numerical suffix, e.g. "gulim:1". - 2006-01-24 (bug #652) Added the keyword "default" for the "pagelayout" option of PDF_begin/end_document() in order to work around an error in the PDF reference which states that "SinglePage" is the default, while actually the default is provided by a user setting in Acrobat. - 2006-01-24 (bug #616) Glyphwarnings could happen in PDF_fit_textflow() even with glyphwarning=false if the text contained an inline option. The warning is now properly thrown in PDF_create_textflow() according to the glyphwarning option. - 2006-01-23 (bug #637) When PDF_open_pdi_callback() was used and a token ended exactly at the end of an internal buffer the client-supplied opaque pointer would be overwritten, resulting in a crash when the client-supplied read or seek function was called (this is an extremely rare situation). - 2006-01-18 (bug #545 and bug #636) Added a new binding for Ruby, including samples for use with Ruby on Rails. - 2006-01-18 (bug #651) Implemented the "Scope" attribute for TH items in PDF_begin_item() to improve Tagged PDF output. - 2006-01-11 (bug #646) The option "space" at the beginning of a Textflow didn't have any effect. - 2006-01-10 (bug #644) The Mac OS X builds use only "-framework ApplicationServices" instead of "-framework Carbon" in order to avoid pulling additional system libraries which may be undesired in the client application. - 2006-01-09 (bug #639) Acrobat couldn't display text with TrueType or OpenType font subsets when a composite glyph was contained in the subset, and its glyph id was larger than the ids of all components. - 2006-01-09 (bug #638) The font cache didn't identify font duplicates when the internal encoding name was different from what the user supplied. This can happen when "auto" or "host" is supplied in PDF_load_font(). As a result of this bug fonts could be embedded more than once, resulting in file bloat. - 2005-12-30 (bug #615) PDF_get_pdi_value() didn't return the correct value of a page's /Rotate key if it was inherited from a parent Pages node. - 2005-12-23 (bug #496) The function utf8_to_utf16() in C++ did not correctly deal with strings containing null bytes (very likely for UTF-16 conversion results). - 2005-12-23 (bug #634) Slightly modified the output for blend mode entries in explicit gstates in order to work around a bug in Acrobat 7. - 2005-12-02 (bug #610) The fallback for switching from softhyphen to hyphen if the former is not present was missing for TrueType fonts with encoding=unicode. As a result, Textflow would place the "unknown" glyph (sometimes a box) instead of a hyphen. - 2005-11-24 (bug #586) The output file wouldn't be closed after a disk full error, which could result in locking situations. - 2005-11-18 (bug #538) Added validity checks in the Java wrapper to guard against unexpected situations of data corruption on mainframes. - 2005-11-18 Added PDF_check_context() for use in language wrappers (unsupported). Reworked the outer API function layer to carefully deal with corrupt context pointers. - 2005-11-16 The -r option of pdfimage didn't work. ================================== PDFlib 6.0.2p5 (November 16, 2005) ================================== - 2005-11-15 (bug #567) Textflow: if the box doesn't contain any text at all when processing is finished (e.g. because the width of the box is too small to hold any text), the return string "_boxfull" is misleading. Textflow will now return the string "_boxempty" in such situations. - 2005-11-15 (bug #566) The version information produced by the PHP wrapper for phpinfo() was incomplete. The "binary" was missing which is required to distinguish prebuilt DSOs from roll-your-own binaries (bug introduced in PDFlib 6.0.1). - 2005-11-15 (bug #563) Textflow: the combination of "leftindent", absolute tabs (hortabmethod= ruler, typewriter) and "space" was not implemented. New behavior: - "\t": the indentation will be ignored - with "\t" the additional space will be taken into account - the combination "\t" is not supported. - 2005-11-15 (bug #559) The option "tabalignment=decimal" in Textflow didn't fully adhere to the behavior described in the manual if no tabalignchar was found. Also, the alignment could be wrong if a tabalignchar was found and a charspacing option was used. - 2005-11-10 Implemented the "xheight", "xheightfaked", "capheightfaked", "ascenderfaked", and "descenderfaked" parameters. - 2005-11-10 (bug #542) Fonts with a name longer than 31 characters could not be loaded as host fonts on Windows if another font with the same face name was installed in the system. - 2005-11-08 (bug #531) verticalalign=justify didn't work correctly in PDF_fit_textflow() for the second and subsequent fit boxes. - 2005-11-08 (bug #547) PFM files for code pages other than 1252 or builtin are now also supported, e.g. PFMs for cyrillic fonts. They can be used with an encoding which matches the PFM's internal code page, builtin, or unicode. - 2005-11-07 (bug #550) CMYK JPEG images will now always be color-inverted and transcoded, regardless of any Adobe marker. Inverting solves a problem with inverted color display of some CMYK JPEGs created with non-Adobe software, and transcoding is required for correct color display in Acrobat 4, 5, and 6 (but not 7). - 2005-11-04 (bug #514) In order to avoid accuracy problems with double conversions string-float- string, PDI now copies the original string representations of numbers when copying objects from an input PDF to the output. - 2005-11-02 (bug #507) Improved subsetting of OpenType SID and CID fonts; the generated subsets are now much smaller, which is particularly relevant for CJK text. This also solves a problem with an OpenType-related warning in Ghostscript ("Error: missing tables at [...]"). - 2005-11-01 (bug #533) Calls to PDF_begin_layer() with the currently active layer will now be detected and ignored. This reduces the output file size and partially works around a layer-related bug in Acrobat 7. - 2005-10-29 (bug #535) Set -D__NO_CTYPE on all Linux flavors to guard against a binary incompatibility on some systems. - 2005-10-29 (bug #374) Reworked the build process for the PHP binding to use PEAR, which significantly simplifies and speeds up the build process, and makes it easier to automatically build binaries for multithread-enabled PHP builds. In addition, support for PHP 5.1 was added. - 2005-10-26 (bug #530) Improved error handling for transcoded JPEG images: errors in the input (which can be fixed by transcoding) will no longer raise an exception, regardless of the "imagewarning" setting. - 2005-10-26 (bug #522) The text of the exception which was thrown when both the "linearize" and "inmemory" options were set in PDF_begin_document() and PDF_get_buffer() was called before PDF_end_document() was misleading; now a clearer message is issued. - 2005-10-26 (bug #520) PDF_suspend_page() didn't work with page groups; an exception would wrongly be thrown. - 2005-10-26 (bug #521) Limit the number of bytes which are read when testing for JPEG image type to avoid problems when reading from non-files on some systems (e.g. when a directory name was supplied as an image file name). - 2005-10-25 (bug #526) When the "return" option was used in PDF_fit_textflow(), subsequent calls to this function returned the user-defined return string until the text was completely placed (instead of the actual reason string, such as "_boxfull"). - 2005-10-24 (bug #513) Implements the "strokewidth" and "dasharray" options fo PDF_fit_textline(), PDF_create_textflow(), and PDF_fill_textblock(). ================================= PDFlib 6.0.2p4 (October 21, 2005) ================================= - 2005-10-21 (bug #535) Work around a binary incompatibility on certain Linux PPC systems. - 2005-10-21 (bug #517) The "linearize" option was not rejected in PDF_begin_document_callback(), but caused a crash (this combination is not supported anyway). - 2005-10-21 (bug #511) Fixed printing problems with certain flavors of CCITT-compressed TIFF images. - 2005-10-21 (bug #489) Activated large file support for AIX. - 2005-10-21 (bug #519) PDF_begin_document_callback() was missing from the C++ binding. - 2005-10-20 JPEG2000 support was missing from the source code packages. - 2005-10-18 (bug #504) Trying to use unembedded standard CJK fonts in PDF/X mode did not raise an exception although embedding is required in this case. - 2005-10-18 (bug #501) Adds a check to guard against (invalid) PDF documents that do not contain any pages. ================================= PDFlib 6.0.2p3 (October 07, 2005) ================================= - 2005-10-07 (bug #481) Significantly cut down overall memory consumption by reducing the memory required for each page by ca. one half. - 2005-10-05 (bug #167) Setting the flush=heavy parameter didn't have the desired effect on the output stream, but actually acted llike flush=none. - 2005-10-05 (bug #471) PDF_open_pdi_page() with infomode=true copied the page content data to the output although this was neither desired nor useful. - 2005-09-28 (bug #487) Made error checking for AFMs more robust in order to guard against bad resource configurations (e.g. configuring a PFM file in the FontAFM category). - 2005-09-28 (bug #477) When "verticalalign=justify" was used in Textflow then "_boxfull" was returned although no output was created (i.e. the complete contents of the first box were missing). - 2005-09-28 (bug #467) Reduced the limit for the determinant where an exception "matrix not invertible" is thrown; this reduces the number of problematic cases e.g. for image fitting. - 2005-09-26 (bug #478 and bug #480) The following functions had missing or wrong return types in the RPG binding: PDF_create_action(), PDF_create_bookmark(), PDF_begin_item(), PDF_fit_textflow(), PDF_info_textflow(), PDF_set_parameter(), PDF_new2(). =================================== PDFlib 6.0.2p2 (September 14, 2005) =================================== - 2005-09-30 (bug #387) Fixed the mechanism for evaluating SYS$SCRATCH on OpenVMS. - 2005-09-14 (bug #468) A crash in PDF_delete() could occur when a call to PDF_open_pdi() failed and pdiwarning was true. - 2005-09-08 (bug #452) Implemented the "moddate" option for PDF_begin/end_document() to account for the strange behavior of some preflighting tools which require the ModDate entry. - 2005-09-06 (bug #449) Improved the libjpeg interface for transcoding certain JPEG images by hooking up a private error_exit function to avoid libjpeg's default error_exit to be called (this can really exit, albeit only for very strange damaged JPEG images). =================================== PDFlib 6.0.2p1 (September 02, 2005) =================================== - 2005-09-02 Textflow ignored spaces at the end of the text, resulting in slightly incorrect textx/texty output and underline output. - 2005-09-02 (bug #444, bug #446, bug #447) Fixed problems with placing the last line of a Textflow. Options at the end of the text were not taken into account so that the fitting algorithm stopped too early. Results of this bug could be the last line missing, or wrong leading between the last two lines; inline option lists like or at the end of the text were ignored. - 2005-08-30 (bug #443) Introduced the suboption "normalizefilename" for the OPI-1.3 and OPI-2.0 options of PDF_load_image(). - 2005-08-30 (bug #440) PDI will use the intersection of CropBox and MediaBox if the CropBox exceeds the MediaBox (which is illegal according to the PDF reference, but some producers do this nevertheless). Similarly for the other usepdibox options. - 2005-08-30 (bug #436) Textflow calculated tab positions which were too large if there was a preceding center, right, or decimal tab. - 2005-08-30 (bug #433) Raise an exception when the "italicangle" parameter is applied to vertical text since this combination is not supported, and doesn't work. - 2005-08-29 (bug #430) Significantly decreased the number of entries in the /W array for CID fonts by omitting 0 entries for unused glyphs. Furthermore, the /W optimization was completely missing for encoding=glyphid. - 2005-08-29 (bug #428 and bug #439) PDF_load_font() incorrectly allocated an internal font slot although it returned -1, or returned -1 for a valid font slot under the following conditions: - fontwarning=false - embedding=false - font not found as host font, and no font metrics file available A crash would happen later when the document was closed. - 2005-08-29 (bug #432) PDFlib Lite couldn't be used on Mac OS X because the FSPathMakeFSSpec() helper function was missing from the code. - 2005-08-25 Emit different messages for unknown encryption algorithms and wrong passwords, respectively. - 2005-08-25 PDI didn't properly detect and reject AES-encrypted PDF 1.6 files. ============================== PDFlib 6.0.2 (August 09, 2005) ============================== - 2005-08-09 (bug #420) Textflow: if the text before a ruler tab exceeded the tab position the text after the tab overlapped the text before the tab if tabalignment was different from left. Now the text after the tab will be placed immediately after the text before the tab. - 2005-08-09 (bug #164/reopened) Textflow ignored the values of parindent and/or leftindent when calculating the position of ruler tab positions. - 2005-08-08 (bug #418) The option "space" in an inline option list for Textflow didn't cause any line breaking opportunity before the next text snippet. - 2005-08-08 Inserted a new implementation of TIFFFindFieldInfo() from libtiff 3.7.0 to avoid a static variable and a potential memory-related crash with custom tags. - 2005-08-08 Fixed a memory problem in libtiff related to tags of type RATIONAL. - 2005-08-07 (bug #416) Redirect libjpeg error and warning messages to the PDFlib log file if logging is enabled. - 2005-08-05 (bug #368/partial) OpenType CFF fonts which require rewriting to CID and contain accented characters that use the deprecated seac/endchar operator are not properly converted (e.g. FontShop's AbsaraSansOT). Pending the full bug fix we now throw an exception if the problematic situation is detected. If CID conversion is not required and subsetting is enabled both the base and accent characters are now included in the subset, which fixes an Acrobat display problem in this case. Possible workaround for the remaining CID case: 8-bit encodings are not affected by this problem. - 2005-08-05 (bug #372) Added a sample for .NET 2.0 and Visual Studio 2005 (tested with beta 2). - 2005-08-05 Changed the definition of slot 0xCA (dec 202, oct 312) in "macroman_apple" encoding from U+0020 (space) to U+00A0 (no-break space). - 2005-08-03 (bug #411) The "willclose" action didn't work properly in Acrobat due to a bug in the PDF reference. - 2005-07-28 (bug #401) Calling PDF_open_pdi() with a PVF file and the "inmemory" option resulted in a crash. - 2005-07-26 (bug #107) Added support for PostScript host fonts on the Mac (Carbon builds only). - 2005-07-25 (bug #398) The ColSpan and RowSpan properties were incorrectly rejected for the TD tag, and accepted only for TH. - 2005-07-23 (bug #158) Fixed a problem caused by inconsistent handling of enum values in the Classic and Carbon CodeWarrior builds. - 2005-07-22 (bug #387) Uses "SYS$SCRATCH" for temporary files on VMS, and support logical names in the SearchPath resource category. - 2005-07-22 (bug #394) Implemented the "orientate" option for PDF_fit_textflow() and corresponding property for Textflow blocks in PDF_fill_textblock(). - 2005-07-20 (bug #393) The Textflow engine could place text on the top edge of the box (instead of below the edge) under the following conditions because the leading was not applied: - A line break occurs at the first line break opportunity in the first line and - The second line break opportunity is not considered. - 2005-07-19 (bug #392) The emulation of the deprecated function PDF_add_note() incorrectly set the annotation's "enable printing" flag, making it incompatible with the behavior of PDFlib 5. - 2005-07-19 (bug #379) PDF_create_textflow() could incorrectly raise an exception "Font 'Helvetica' must be embedded in PDF/X-1 and PDF/X-3" in PDF/X mode if no fontname was supplied in the optlist parameter but only via inline options. - 2005-07-19 (bug #383) Improved the build process for PDFlib with PHP, and added support for PHP 4 DSOs on Mac OS X. - 2005-07-19 (bug #325) Switched the default build for HP-UX on Itanium from ILP32 to LP64 which makes more sense on a 64-bit platform. - 2005-07-19 (bug #217) Fixes a long-standing problem with libtool which caused problems on several platforms. Most notably, the standard build on Linux x86_64 created a static library by default since no PIC code was created, and on AIX the shared library was included in the shipped libpdf.a. - 2005-07-18 (bug #299) Don't use the current fill color as alternate color for the "All" and "None" spot colors to avoid an internal error message when the current fill color was another spot color. We now use DeviceGray as alternate, or DeviceRGB for DeviceRGB output intents to be compatible with PDF/X-3. - 2005-07-18 (bug #304) Added a check to make sure that the output device is characterized by an embedded ICC profile if HKS or Pantone spot colors are used in PDF/X-3 mode. This is mandated by the PDF/X-3 standard and was already documented in the PDFlib manual, but not yet enforced by the code. While Acrobat 6 Preflight does not check this condition, Acrobat 7 does. - 2005-07-15 (bug #355) Adjusted the RB samples for compatibility with REALbasic 2005. - 2005-07-14 (bug #149) Replaced a deprecated call to PDF_set_parameter() in the chartab examples with the equivalent option list in PDF_begin_document(). - 2005-07-06 (bug #319) A crash could happen when PDF_delete() was called for cleanup after an exception because the output file couldn't be written (e.g. disk full). - 2005-07-06 (bug #365) Adds support for PHP 4.4.0 RC2. - 2005-07-05 (bug #241) Removed the VBScript samples for ASP from package and manual since VBS is really unpopular for ASP development. - 2005-07-05 (bug #190) Set the PDFlib object to "Nothing" in all ASP.NET and VB.NET samples in order to avoid output files remaining locked in case of an exception. Client code should apply the same technique. - 2005-07-04 (bug #105 and bug #106) Adds support for building PDFlib as a framework on Mac OS X with xcode. - 2005-07-04 (bug #167) Improved the flushing behavior, and fixed various bugs related to the "flush" parameter. - 2005-07-04 (bug #318) PDF_suspend_page() could crash when the trace was enabled. In addition, PDFlib now checks whether any suspended pages are still pending at the end of the document, and throws an exception if this is the case. - 2005-06-29 (bug #369) Negative glyph width entries in TrueType or OpenType fonts (e.g. FSI's DaxlinePro) are now accepted although the spec calls for a USHORT value in the advanceWidth entry of the hmtx table. - 2005-06-29 (bug #170) Linearization could fail for files containing a very large number of bookmarks. - 2005-06-26 (bug #352) PDI now accepts abbreviated filter names for content streams. - 2005-06-26 (bug #322 and bug #328) The PDI cache for page handles hasn't been emptied when the output PDF was closed. This could result in invalid output when an input PDF was opened in object scope, and caused a memory leak. - 2005-06-26 (bug #223) Updated the block API version number to 5. - 2005-06-24 (bug #330) Implements support for character references (option/parameter "charref") for UTF-8 text format. - 2005-06-24 (bug #356) Implements the "rotate" option for PDF_fit_textflow(). - 2005-06-24 (bug #321) Allows an empty string for the "destname" option of PDF_create_bookmark() to create bookmarks without any action. - 2005-06-24 (bug #347) Implements the "passthrough" option for PDF_load_image() to control TIFF pass-through mode and JPEG transcoding. - 2005-06-23 Adjusted the naming conventions for the trace feature to match the new logging facility. - 2005-06-23 (bug #348) An exception would be thrown if underline/overline/strikeout was enabled for fonts containing an underline width value of 0. PDFlib now sets the linewidth to the default of 50 in this case. - 2005-06-17 (bug #341) OpenType fonts without an internal glyph name list could crash PDFlib. - 2005-06-17 (bug #264) Detects masks which have different orientation than the image, and rejects them. - 2005-06-17 (bug #317) Added support for 16 bit BMP images (actually 5+5+5 plus 1 unused bit). - 2005-06-09 (bug #207) Adds special code for querying the second value of the position array in with "vdp/Blocks[%d]/position[1]" paths for cases with only entry (i.e. both values are the same, and the Block plugin wrote only one entry). Same handling for the "dpi", "margin", and "scale" properties. - 2005-06-08 (bug #100) Adds large file support for OpenBSD. - 2005-06-03 (bug #220) Detect and reject JPEG-compressed TIFF images with separate image planes since libtiff cannot handle this flavor. In many cases these aliens can be processed with type=jpeg, but PDFlib does not automatically try this. - 2005-06-02 (bug #242) Added the keywords left/center/right and bottom/center/top to the "position" option of PDF_fit_textline(), PDF_create_field(), and PDF_create_fieldgroup(). - 2005-06-01 (bug #52) Added full LZW decompression support to PDI. This is required only for the very rare case of content streams with mixed compression filters (LZW plus other) which was rejected in the past. - 2005-05-31 (bug #299) The special spot color names "All" and "None" didn't work when the current fill color space was another spot color. PDFlib now generates a simple DeviceGray alternate color space for these two special color spaces. ============================= PDFlib 6.0.1p7 (May 20, 2005) ============================= - 2005-05-20 (bug #236 and bug #265) Adds support for Mac OS X 10.4 aka Tiger, including a special build for the version of Perl included in Tiger. - 2005-05-20 (bug #235) Minor adjustments to allow builds with GCC 4. - 2005-05-18 (bug #266) The businesscard.php sample in the php-50x tree was actually the sample code for PHP 4. - 2005-05-13 (bug #261) The scope check for PDF_load_image() was executed too late, which could result in misleading or plain wrong error messages when the function was called in object scope. - 2005-05-12 (bug #260) Implemented the "opacity", "createdate", and "subject" options for PDF_create_annotation(). - 2005-05-12 (bug #262) Encoding "auto" didn't work properly for the PDF core fonts (e.g. "builtin" was used instead of "winansi" even for text fonts). - 2005-05-09 (bug #257) OpenType fonts with an empty classrecords table could raise an exception. - 2005-05-06 No longer raise an exception for empty upr configuration files. ============================= PDFlib 6.0.1p6 (May 03, 2005) ============================= - 2005-05-03 Added support for images with JPEG2000 compression (using type=jpeg2000 in PDF_load_image()). - 2005-04-26 (bug #212) Calling get_errmsg() in a Unicode-capable binding would clear the error number, i.e. a subsequent call to get_errnum() returned 0 (calling both in opposite order worked well). - 2005-04-22 (bug #155) Implements the "underlinewidth" and "underlineposition" options for the text output functions in order to allow constant underline width even across font changes. - 2005-04-21 (bug #218) Empty strings supplied to PDF_create_textflow() could result in a crash in the Java binding on some systems. Similarly, the length parameter of PDF_create_textflow() in C was not properly ignored if a NULL pointer was supplied for the text. =============================== PDFlib 6.0.1p5 (April 19, 2005) =============================== - 2005-04-19 (bug #213) PDI now accepts hexadecimal strings with an odd number of hex digits or whitespace between hex digits. - 2005-04-19 (bug #208) Encryption didn't work properly in builds with the Borland C++ compiler (valid PDF was created, but the password was modified). - 2005-04-19 (bug #214) Implemented the "leftlinex/y" and "rightlinex/y" keywords for PDF_info_textflow(). - 2005-04-18 (bug #196) Introduces numerical addressing mode for the fonts contained in a TrueType Collection (TTC) file, e.g. "msgothic:1". - 2005-04-18 (bug #211) Malformed TIFFs with non-conforming data types in custom tags could result in a crash or a warning "tried to allocate 0 or negative number of bytes". Since we don't use custom tags PDFlib now ignores those when reading the image. - 2005-04-18 (bug #210) When conflicting options for PDF_load_font() were supplied (e.g. fontstyle and embedding) the font engine could emit wrong error messages related to AFM, PFM, and TTF/OTF files (e.g. "Out of memory" or "Metrics data not found"). - 2005-04-15 (bug #166) Implemented the "metadata" option for page-related XMP metadata in PDF_begin_page_ext() and PDF_end_page_ext(). - 2005-04-15 (bug #151) Eliminates display problems with Photoshop CMYK JPEG images in Acrobat 7. In order to avoid reintroducing a similar problem with Apple Preview we now always transcode Photoshop CMYK JPEGs. This also eliminates a display problem in Acrobat 6 with rare JPEGs which have a ColorTransform entry of 2 in the Adobe marker. - 2005-04-15 (bug #165 and bug #156) TrueType or OpenType fonts may contain glyphs without any Unicode mapping. E.g. swash characters cannot map to the same Unicode value as the corresponding regular characters. While Adobe OpenType fonts generally map such glyphs to the CUS, other vendors do not provide any Unicode value for them. Since PDFlib's internal handling relies on unique Unicode values the glyphs were not accessible, not even with a custom name-based encoding. To solve this PDFlib now maps those glyphs to the PUA internally. The PUA values are not visible to the client, but name-based glyph access will work now. - 2005-04-12 (bug #114) In order to work around different behavior in Acrobat 5 and 6 regarding several form field options (e.g. the readonly option for radio buttons was not honored in Acrobat 6) the following restriction is now implemented: options "readonly", "unisonselect", "toggle", and "tooltip" for type= radiobutton are only allowed for PDF_create_fieldgroup(), but no longer for PDF_create_field(). - 2005-04-12 (bug #169) BMP images with 32 bits per pixel were accepted, but not properly converted to PDF. Now they are treated as RGB images where 8 bits per pixel are skipped. - 2005-04-12 (bug #205) The position of overline/underline/strikeout lines was wrong when horizontalscaling was negative or a topdown coordinate system was used. - 2005-04-12 (bug #204) When charref=true and an isolated "&" character is found in the text an exception is only thrown when glyphwarning=true. This allows clients to use character references while not having to worry about stray "&" characters. - 2005-04-09 (bug #201) PDF_load_font() could crash if fontwarning=false and an unknown encoding name was supplied. - 2005-04-09 (bug #198) If the string value of the "destname" option (supported in the option lists of multiple functions) was not UTF-8 it was treated as PDFDocEncoding instead of the encoding specified as hypertextencoding. ============================== PDFlib 6.0.1p4 (April 4, 2005) ============================== - 2005-04-04 (bug #189) Creating trace output could crash with Unicode bindings (e.g. Java) on some platforms (e.g. Solaris) when a NULL pointer was supplied to the printf() function for a %s parameter. - 2005-04-01 Fixed various problems with textflow: - (Bug #183) PDF_fit_textflow() placed the text on a wrong position (text started in the vertical middle of the target rectangle) when the options "fitmethod=nofit verticalalign=center" were set and the text didn't fit into the box. Now it will be correctly centered, and extend beyond the top and bottom of the rectangle (because of nofit). - (Bugs #137, #138, and #145) Calculating the leading value was inconsistent. This affected situations where leading was specified at the beginning of the text and in the optlist parameter of PDF_create_textflow(). In this situation the leading value from the optlist parameter was used, and not the one from the inline option list. The new behavior is documented in the manual. Note that it may cause different formatting results than with earlier versions!. - (Bug #142 and #157) When a sequence of option lists didn't contain any text in between, some settings (e.g. color, fontname) or commands (e.g. nextline) in the first option list were ignored. - (Bug #163) When the option list for PDF_fit_textflow() set the firstlinedist option to capheight or ascender (but not leading), the distance between the first and second lines was too small. - (Bug #164) An unnecessary linebreak could occur for lines containing multiple tabs when the text between two tabs was too long. - (Bug #181) When empty text was supplied to PDF_fit_textflow(), the value returned for "textendy" in PDF_info_textflow() would always be the upper right y value of the box, even if the lower left and upper right corners were supplied in reverse order (which is allowed). - 2005-03-31 (bug #188) The "refpoint" option didn't work for PDF_fill_imageblock() and PDF_fill_pdfblock(). ================================== PDFlib 6.0.1p3 (February 14, 2005) ================================== - 2005-02-14 License keys didn't work with the new package for OpenVMS. - 2005-01-27 (bug #159) A bug in hypertext string processing resulted in the wrong exception "Invalid UTF-16 string (odd byte count)" when a hypertext function (PDF_add_nameddest(), PDF_create_bookmark(), PDF_create_field(), PDF_create_fieldgroup()) was called, and all of the following conditions are true: - A non-Unicode-capable language binding is used (C, PHP, etc.) - "hypertextencoding" has not been set. - "hypertextformat" has not been set, or has been set to "utf16xx" - PDF_set_info() has not yet been called. Workaround: set "hypertextencoding" or call PDF_set_info(). - 2005-01-13 (bug #150) In rare cases a ToUnicode map was not created even with unicodemap=true. This affected TrueType and OpenType/TT fonts with an encoding different from winansi/macroman/ebcdic if the encoding contained only AGL names. ================================= PDFlib 6.0.1p2 (January 11, 2005) ================================= - 2005-01-11 (bug #148) When using CMYK images in PDF/X-3 mode with one of the Standard OutputIntents PDFlib required the user to set a DefaultCMYK color space. This is wrong, since all of the Standard OutputIntents are CMYK, and a DefaultCMYK color space is only required if the output device is not CMYK. As a result of this bug PDF/X-3 with untagged images could not be created. Explicitly specifying the output intent via an ICC file provides a workaround, however. - 2005-01-10 (bug #147) Five symbols from the PNG library had their name mappings missing, resulting in conflicts when an application was linked against both PDFlib and libpng with certain compilation flags. - 2005-01-10 (bug #133) Analyzed iDEFENSE Security Advisory 12.21.04; the recommended patch is not required since PDFlib automatically traps attempts at allocating 0 bytes. However, the patch has been applied nevertheless since it results in a slightly less generic exception message. - 2005-01-07 (bug #144) PDFlib would crash when the same named destination was set multiply on different pages. - 2005-01-07 (bug #142) With two sequential Textflow option lists without any text in between, any color settings in the first list would be ignored. - 2005-01-05 (bug #139) Textflows containing only an option list, but no actual text would raise an exception "Handle parameter or option of type 'textflow' has bad value" in PDF_fit_textflow(). Now this is treated like an empty Textflow. - 2005-01-04 (bug #141) "make install" for PDFlib Lite would fail if /usr/local/bin did not exist. - 2005-01-04 (bug #140) Textflow could ignore the "minlinecount" option in certain situations. ================================== PDFlib 6.0.1p1 (December 17, 2004) ================================== - 2004-12-17 (bug #124) PDF_fill_textblock() in Unicode-capable languages could raise the exception "Warning: End character U+003E for inline option list not found" when no text was supplied and the default text of the block contained an inline option list. - 2004-12-17 (bug #113) A crash could occur after a field-related exception due to an error in the cleanup code. - 2004-12-16 (bug #120) The large file support introduced in 6.0.1 could create a performance bottleneck on Windows when reading files from a network drive. - 2004-12-14 (bug #119) Due to inconsistent input material the builtin HKS tables contained errors: - added "HKS 207 E" and "HKS 243 E" - removed "HKS 98 E" and "HKS 99 E" which don't actually exist - added "HKS 98 K" and "HKS 99 K" - 2004-12-13 (bug #117) The following combination of options for PDF_define_layer(): "intent=View initialviewstate=false initialprintstate=true" (for creating a layer which is visible, but doesn't print) didn't work; the layer was invisible on screen as well. - 2004-12-13 (bug #116) Using the "inmemory" option in PDF_open_pdi() caused a memory leak. - 2004-12-09 (bug #83) Removes the DLL edition of PDFlib.NET from the installer package and manual, and builds PDFlib.NET against Framework 1.1 to avoid the dreaded AppDomainUnloadedException problem (Microsoft KB bug Q309694) without requiring the DLL edition. As a consequence, Framework 1.1 is now required to use PDFlib.NET. - 2004-12-06 (bug #110) PDF_set_parameter(p, "trace", "true") didn't automatically flush the output. ================================ PDFlib 6.0.1 (November 26, 2004) ================================ - 2004-11-26 PDF_set_layer_dependency() didn't work in the Java binding for iSeries. - 2004-11-26 (bug #101) CodeWarrior builds on Mac and Windows couldn't deal with more than 126 Indexed color spaces. An exception "Unkown color space -128" could occur when importing more than 125 images. - 2004-11-22 (bug #81) Changes the definition of "host" encoding on iSeries from EBCDIC code page 1047 to code page 037 to better match the conventions used for compiling C code. This may affect client code, but using "host" encoding is not recommended anyway. - 2004-11-19 (bug #92) The ICC profile handle returned by PDF_get_value() for "image:iccprofile" was off by 1 in the PHP language binding. - 2004-11-19 (bug #88) PDFs containing subsets of symbolic TrueType fonts (e.g. Wingdings) with encoding "builtin" resulted in PostScript printing errors. - 2004-11-19 (bug #40) Adds the PDF_utf8_to_utf16() and PDF_utf16_to_utf8() utility functions to the PHP, Perl, Python, Cobol, and RPG language bindings. - 2004-11-18 (bug #86) Emits a better message when an OpenType CID font is used with an 8-bit encoding (instead of a standard CMap or "unicode" encoding). - 2004-11-18 (bug #82) The textflow options charspacing, wordspacing, and textrise didn't work properly (wrong alignment) if specified as a percentage (as opposed to absolute values). - 2004-11-18 (bug #89) Layer nesting didn't work for the second and subsequent top-level layer, i.e. subsequent nested layer names would appear as top-level layers in Acrobat's layer pane. - 2004-11-18 (bug #71) Eliminated a memory leak which could occur when an exception was thrown in PDF_end_page_ext(). - 2004-11-18 (bug #63) JPEG transcoding (introduced in 6.0.0p3) didn't work for images containing some garbage bytes at the beginning. - 2004-11-17 (bug #70) Encrypted PDF with compressed object streams can only be opened with the proper password, even with the "infomode" option. Failing to supply the password will now be properly reported in PDF_open_pdi(), instead of raising an exception in PDF_get_pdi_value() because of damaged PDF. - 2004-11-17 (bug #56) Improved large file support (files > 2 GB) to work on more platforms, including Windows and Mac OS X. - 2004-11-17 (bug #68) PDI couldn't uncompress a certain flavor of Flate-compressed content streams with damaged or incomplete Flate data. - 2004-11-16 (bug #72) Rectifies handling of TIFF images with an orientation tag: - Implements the "ignoreorientation" option for PDF_load_image() in addition to the existing PDF_fit_image() (documentation for 6.0.0 claimed otherwise, but this was a bug in the manual). - Implements the "orientation" parameter for querying the value of the orientation tag for TIFF images with PDF_get_value(). - The resx/resy and imagewidth/height parameters will be swapped if the image contains an orientation tag which requires swapping. - 2004-11-15 (bug #74) Symbolic fonts in the TrueType and OpenType formats with "unicode" encoding can now be addressed in two different ways: - Unicode values U+F000 and above - Unicode values U+0020-U+00FF for (pseudo) single-byte addressing PDFlib will automatically detect the user's choice and convert the incoming strings to the required internal format. This means that both Unicode-savvy code as well as "old-style" single-byte addressing will work for fonts such as WebDings. - 2004-11-15 (bug #79) The PDFlib PECL module (version 2.0.3) now supports old PDFlib 4 installations. The changes were implemented both in the PDFlib CVS and the PHP/PECL CVS. - 2004-11-12 (bug #73) Some fonts wouldn't be found as host fonts on the Mac. In particular, bold and italic styles didn't work, and plain-style fonts didn't work if they contained the word "Regular" in the font name. The new code requires the QuickDraw font name to be supplied by the user (ftxinstalledfonts -q), as opposed to the previous recommendation of using the full name (ftxinstalledfonts -f). - 2004-11-10 (bug #76) On the Mac the SearchPath logic was not applied to LWFN PostScript font files, so the file names had to be specified with their full path names. Now they will be searched in all SearchPath directories. - 2004-11-10 (bug #63) Analyzed and fixed the following security vulnerabilities in libtiff: - CAN-2004-0803: three vulnerabilities fixed (one in deactivated Thunderscan code, though) - CAN-2004-0804: vulnerability not present in PDFlib 6.0.x - CAN-2004-0886: multiple vulnerabilities fixed - CAN-2004-0929: overflow problem in OJPEG code fixed - (No CAN) YCbCr subsampling code initialization was missing. - 2004-11-06 Improves memory management and cleanup in the Tagged PDF module. - 2004-11-05 (bug #54) Clarifies the use of encodings for passwords, and implements auto-detection of password encodings for compatibility with PDFs which have been encrypted with Acrobat on the Mac. For encryption, WinAnsi is used as password encoding. ================================== PDFlib 6.0.0p6 (November 04, 2004) ================================== - 2004-11-04 (bug #56) Added large file support, i.e. PDFlib can now create files > 2 GB, and PDI can process such files. - 2004-10-29 (bug #67) Textflow could crash when the text contained more than 64 (for textformat= bytes) or 32 consecutive spaces (for textformat=utf16xx and all Unicode- capable languages) after a newline character. - 2004-10-28 (bug #61) Renamed the variable "form" in the invoice samples with "stationery" to avoid a name clash in ColdFusion MX. - 2004-10-28 (bug #65) Moves the target area for PDFlib-private Unicode mappings from the start of the PUA (U+E000) to U+F5FF (increasing downwards) in order to avoid potential conflicts with Adobe's use of the corporate-use area, which starts at U+F600 and is actually used by some OpenType fonts. - 2004-10-28 (bug #59) Documents and expands the list of character pairs for the Unicode replacement mechanism (e.g. soft hyphen will be replaced with hyphen-minus if the font doesn't provide a glyph for the former). - 2004-10-26 (bug #51) Implements the "iconname" option for the PDF_load_image() and PDF_open_pdi_page() functions. - 2004-10-25 (bug #44) Implements the min/maxlinelength and min/maxliney parameters for PDF_info_textflow(). - 2004-10-25 (bug #34) The "tempdirname" option was ignored on all platforms except MVS. - 2004-10-25 (bug #53) Implements the "inmemory" option for PDF_open_pdi(). - 2004-10-22 (bug #35) Embedded OpenType fonts with PostScript outlines could result in PostScript printing problems (Acrobat 5 would crash; Acrobat 6 would only print .notdef characters, such as a crossed box). The problem occurs only when the font is embedded in the PDF output as CIDFontType0, which happens for encoding= unicode, glyphid, or any name-based encoding with at least one character outside Adobe's standard Latin character set (in the latter case only if autocidfont=true, which is the default). The specific reason for the printing problem was that the font data was incorrectly written in the SID format; now it is written in the CID format with Ordering=Identity-H. As a side effect, the new algorithm brings down file size of embedded OpenType fonts significantly. - 2004-10-22 (bug #49) Invalid PDF was generated (Acrobat popup: "An unrecognized token 'obj' was found.") when PDF_begin_template() or PDF_begin_pattern() were called in page scope (as of PDFlib 6, this allowed per PDFlib's scoping rules). - 2004-10-22 Reworks handling of PNG images: - Switches to libpng 1.2.7 - Adds a new header file for custom preprocessor statements. - Changes handling of gray and RGB images with an associated alpha channel: let libpng multiply the image against a white background. This changes the old treatment of alpha channels, but the previous results could be considered wrong anyway. - 2004-10-20 (bug #46) Font data could be modified when a TrueType or OpenType font was supplied as a PVF file and subsetting was active. Now PDFlib makes a copy of the font data before creating the subset. - 2004-10-20 (bug #47) The REALbasic wrapper could crash on the Mac when an exception occurred in a function which takes string arguments. ================================= PDFlib 6.0.0p5 (October 18, 2004) ================================= - 2004-10-15 Adds support for custom CJK OpenType fonts in combination with predefined CMaps. However, PDF_stringwidth(), subsetting, and kerning are not yet supported for these fonts. - 2004-10-14 The "honoriccprofile" option in PDF_load_image() will be ignored if "mask" has been supplied since Acrobat doesn't accept masks with ICCBased color spaces. - 2004-10-13 The COM wrapper could crash with "Access violation in OLEAUT32" when PDF_create_pvf() was called with a variable of wrong type for the data parameter, i.e. either not an array or not filled with bytes. - 2004-10-12 (bug #40) Implements PDF_utf8_to_utf16() and PDF_utf16_to_utf8() in all non-Unicode language bindings (previously it was only available in C). - 2004-10-12 (bug #37) In PHP, when an ICC profile handle was supplied to the defaultgray/rgb/cmyk options in PDF_begin_page_ext() an exception "Option 'defaultrgb' has bad iccprofile handle x" was thrown. - 2004-10-12 (bug #36) When PDF_fit_pdi_page() was used in a topdown coordinate system and the "blind" option was supplied, blocks were translated to the wrong position, and the contents appeared mirrored. - 2004-10-12 (bug #32) Option list syntax: strings between braces could not end with a backslash \ character; an exception "Braces aren't balanced in option list..." would be thrown. This combination is now possible by supplying two backslash characters, e.g "{text\\}". However, the sequence "\}" can not be specified since this would require a backward-incompatible change. - 2004-10-11 (bug #38) An inappropriate exception "Label option 'group' is illegal for this function" was thrown when the labels options was used without required suboptions. PDFlib now reports "Option 'labels' requires suboption X if used with this function". - 2004-10-11 When a core font or a font with an AFM metrics file was used with encoding= unicode the generated encoding vector included redundant /.notdef entries. The new optimization compresses the encoding vector, which can result in up to 2 KB output file size savings. - 2004-10-06 Fixed porting problems with SGI Irix. - 2004-10-06 (bug #33) PDF_get_parameter() crashed in PHP when the modifier parameter was missing. ================================= PDFlib 6.0.0p4 (October 01, 2004) ================================= - 2004-09-30 Due to a bug in the output engine byte values 0x85 in PDF strings would wrongly be converted to 0x0A. Only the 6.0.0p3 patchlevel was affected, though. - 2004-09-28 (bug #30) Clarifies textflow's handling of optlists surrounded by spaces when alignment=justify, i.e. situations like "sss ttt": - When a linebreak occurred after "sss" the line was not justified, but the spaces before the option list would remain at the end of the line. - The value of "remainchars" was wrong because the spaces before the option list were counted twice. - Introduces a new rule which clearly describes this situation: the optlist creates a line break opportunity, but there is no break opportunity at the start of "ttt". If there is a linebreak at the option list the spaces before the optlist will be discarded, but the spaces after the optlist will be retained, and appear at the beginning of the next line. - 2004-09-28 (bug #29) PDF_create_field() could create invalid PDF (bad -1 object reference in the /MK dict) when PDF_load_image() was used with the "template" option, and the resulting image handle was used as an icon, but had been closed before the page was finished (which is allowed). - 2004-09-28 (bug #27 and bug #28) Fixes bugs in handling blocks with non-ASCII characters in their names: - PDF_get_pdi_parameter() wrongly accepted UTF-8 strings without BOM in non-Unicode capable languages. If a block name contained at least one character >0x7F an empty string was returned in Unicode-capable language wrappers when querying its properties since the block wouldn't be found. This fix may create an incompatibility for non-Unicode languages since formerly UTF-8 strings without BOM were accepted, but now these will be treated as host-encoded strings. - PDF_get_pdi_parameter() returned a wrong block name if the block name contained characters > 0x7F. - 2004-09-27 (bug #26) The built-in definition of "winansi" encoding mapped the following code points to U+2022 (BULLET) instead of U+0000: 0x7F, 0x81, 0x8D, 0x8F, 0x90, 0x9D. Since these slots are unused in winansi users should not be affected, but encoding mapping of encryption passwords requires the proper definitions. - 2004-09-27 (bug #25) OpenType input fonts which were already subset fonts could cause a crash because of memory problems in SID-to-GID mapping. Since such fonts don't actually occur in real life this didn't pose any practical problem. =================================== PDFlib 6.0.0p3 (September 24, 2004) =================================== - 2004-09-24 Added several missing function name prefixes for libtiff functions. Since some of these were missing an appplication could crash when another instance of libtiff was linked in. - 2004-09-23 PDI translated the "\b" escape sequence in PDF strings to 0x09 instead of 0x08 because of a typo in the string generation table. - 2004-09-22 Always emit zero entries in the FontBBox of Type3 fonts for colorized= true and false, since they are not required, and the previous approximation was inaccurate anyway. - 2004-09-22 Removed the version test for ICC profiles. - 2004-09-22 Reworks the JPEG import module with the following results: - Multiscan JPEGs, which were previously rejected since they are not supported by Acrobat, are now accepted and re-encoded as single-scan images (with a little help from libjpeg). - Redundant JPEG marker segments are no longer written to the output; this includes ICC profiles (since the profile is written as a separate object), as well as all APP and COM markers. Writing ICC profile to the output only as PDF objects, and no longer as APP markers in the JPEG data streams significantly brings down file size. - No longer including the Adobe APP marker works around an "inverted image" problem in Mac OS X preview. - 2004-09-21 (bug #23) The "resetfont" option for textflow is only reasonable after the second change of font-related parameters, but PDFlib did not enforce this condition. - 2004-09-20 Detects several conflicting cases of options of PDF_load_image() and image-internal properties: - The "colorize" option will be ignored if "honoriccprofile" has been supplied. - The "honoriccprofile" option will be ignored if "colorize" has been supplied. - 2004-09-20 Adds full support for LZW-compressed TIFF and GIF images. This eliminates a number of restrictions for acceptable input data as well as restrictions on allowed images in PDF/X mode. - 2004-09-15 Textflow: when begoptlistchar=none was used with an 8-bit encoding, the exception "Begin character U+xxxx for inline option list not found in font encoding" was issued erroneously. - 2004-09-13 The size check for raw image data did not accurately reflect the condition in the manual (which is correct). Consequently, some images where the data was not a multiple of 8 bits were wrongly rejected. - 2004-09-08 When a font allows only a single choice of encoding (e.g. "builtin" for a symbol font) and encoding "auto" has been specified, PDFlib will automatically choose the correct encoding without issuing a warning. - 2004-09-06 The following code points in the cp1252 code page had Unicode mappings which differed from the Microsoft specification (to achieve compatibility with PostScript fonts): 0xD0 ==> U+00D0 (instead of U+0110) 0xF0 ==> U+00F0 (instead of U+0111) All Microsoft code pages had the following incorrect mapping: 0x7F ==> U+0000 (instead of U+007F) These resulted in problems when a Unicode text format was used. PDFlib now includes the fixed character assignments, plus additional logic to resolve situations where a PostScript font does not contain the appropriate glyphs (alternate glyph names will be used in such a situation). - 2004-09-02 Decreased the step width for the fitmethod=auto method for forcing text into a fitbox. - 2004-09-02 (bug #22) Setting the color for a text line in textflow (underline/overline/strikeout) did not affect the adjacent text snippet, but only the next one. - 2004-09-02 Loading a GIF image with the page option and a value different from 1 (which isn't supported anyway) resulted in an exception, rather than returning with -1. - 2004-09-02 No longer overrides non-AGL1 glyph names in the predefined encodings with their AGL1 counterparts (e.g. space vs. nbspace, hyphen vs. sfthyphen) - 2004-08-26 (bug #18) Detect and reject CMYK TIFF images with a mask, since we can't handle these. - 2004-08-24 Treat references to object 0 and other non-existing objects in imported PDFs as equivalent to the null object. Although it is rare, some Producers create such output. - 2004-08-23 (bug #16) Linearization didn't work with non-ASCII file names on Windows ("Couldn't open PDF file ... for writing"). - 2004-08-19 (bug #15) When linearization was on and an exception occurred, the linearization temp file was not deleted. - 2004-08-19 (bug #14) The test for transparency in gstates didn't take into account uninitialized opacity entries, resulting in a wrong error message "PDF_create_gstate: transparency (opacityfill/stroke) not allowed in PDF/X". in PDF/X mode. - 2004-08-19 (bug #5) Check the return value of PDF_create_textflow() in the invoice sample. - 2004-08-11 Various API functions in the RPG binding (e.g. PDF_begin_document()) did not return any result code. - 2004-08-11 Fixed various bugs in the RPG examples. - 2004-08-09 Added the PDFlib-in-PHP-HowTo document. ================================ PDFlib 6.0.0p2 (August 03, 2004) ================================ - 2004-08-02 Improves ICC color profile handling: - Added a workaround for malformed JPEGs with wrong total count entries in APP2 marker segments comprising a fragmented ICC profile. - PDFlib could crash when an error occurred while reading an ICC profile. - Improved error messages for problems with ICC profiles embedded in images. - The internal message created by the ICC profile parser will be included in the exception text. - 2004-08-02 The MS VC++ workspace for the "pdflib" and "pdflib_dll" PDFlib Lite projects didn't include all required dependencies, resulting in linker errors. - 2004-07-30 Fixed a bug (introduced in 6.0.0p1) which prevented querying certain block properties with PDF_get_pdi_parameter(). - 2004-07-30 Changes in the handling of OpenType fonts with PostScript outlines (CFF): - Some OpenType fonts (such AGaramondPro-Regular) couldn't be used with textflow, and resulted in a message "Can't show text character with Unicode value x0020". - Improves creation of the ToUnicode CMap for certain glyphs with double mappings in the CFF tables. - 2004-07-30 Updated the PDFlib C demo programs pdfimage, text2pdf, and pdfimpose to use the new API functions instead of various deprecated calls. - 2004-07-30 Various changes related to textflow: - The linebreaking algorithm didn't recognize the transition from avoidbreak=false to avoidbreak=true as a break opportunity. - PDF_create_textflow() rejects vertical writing mode, i.e. CJK fonts with one of the predefined CMaps ending in -V. - Implements the following textflow options: fontscale, fitmethod, verticalalign, featherlimit. - PDF_create_textflow() always returned -1 if the text parameter was an empty string; an error message couldn't be retrieved even if textwarning was true. Empty strings are now explicitly allowed, and result in a valid textflow handle. - 2004-07-29 Implements the "richtext" option for PDF_create_field() with type=text. - 2004-07-29 When the first call to PDF_create_field() for text fields contained alignment=right or =center all subsequently generated text fields used the alignment from the first field, even when alignment=left was supplied. - 2004-07-29 Encrypted PDF 1.5 couldn't be opened with PDF_open_pdi() if the plainmetadata permission flag was set, but the document didn't actually contain any metadata (even if the proper master password was supplied). This case actually can't be created with Acrobat 6, but only with third-party software (e.g. PDFlib 6). - 2004-07-29 Changes in the PHP wrapper (new PECL package 2.0.2): - The PHP binding did not work with PHP versions before 4.3.x ("php_error_docref is used but not defined"). - pear install now also works on Mac OS X. - Fixed a crash in the wrapper function of PDF_set_polydash(). - 2004-07-29 Works around a bug in the malloc() system function related to not providing properly aligned memory blocks for use with setjmp() on Itanium systems with Linux and gcc. - 2004-07-23 Makes the trace feature configurable (enable, disable, options) via an environment variable. - 2004-07-23 Fixed a bug related to subsetting OpenType fonts with PostScript outlines, a.k.a. OTF or CFF fonts. Although PDFs with subset fonts display fine in Acrobat, trying to print the document to a PostScript printer could result in the message "An error occurred while downloading a font. This document might not print correctly". Other viewers, such as Ghostscript, could also reject the PDF with the message "Error: missing tables at [...]". - 2004-07-19 Changes in the PHP wrapper: - Finetunes handling of long parameters (cast to int where required). - The wrapper for PDF_load_image() didn't check the length of the data string, and the subsequent parameters were wrong. - One parameter was missing for PDF_attach_file(). - 2004-07-19 Fixed an infinite loop in PDF_fill_textblock() for fitmethod=auto if the text didn't completely fit into a block and contained an inline option list containing the "fontsize" option. - 2004-07-19 Supplying an image or PDF handle -1 to a block without any default image or PDF path now results in a warning to alert the user of the problem instead of silently returning. - 2004-07-13 Setting the "debug" parameter to "true" in object scope resulted in a crash. - 2004-07-12 If a Type 1 font was loaded with AFM metrics, encoding "unicode" was used with PDF_load_font(), and certain font conditions were true, the last glyph specified in the AFM file would not be displayed. - 2004-07-12 Updates the Tcl samples to avoid deprecated functions, and use the textflow feature in the invoice example. - 2004-07-09 When a TrueType font was used for a form field and the font's external name differed from its internal name (e.g. Arial vs. ArialMT), PDFlib recorded the wrong font name in the form field, with the result that Acrobat didn't recognize the font. The problem was particularly evident with signature fields, since Acrobat complained "Creation of this signature could not be completed" when trying to save the file. - 2004-07-08 Adds CJK linebreaking support to textflow. All relevant CJK character properties as defined by the Unicode standard are implemented now. Most importantly, all ideographic characters are classified as such, resulting in the corresponding CJK (as opposed to Western) hyphenation rules. - 2004-07-08 Fixes various textflow bugs: - When begoptlistchar=0 or =none is specified in an option list, PDF_create_textflow() would return -1 (if textwarning=false) or throw an exception 0 without any text (if textwarning=true). - When processing the first text line for justified text with the split method it could appear too long, and extend beyond the fitbox. - The wrong treatment of tab+space combinations still wasn't completely fixed: spaces after tabs could result in wrong text placement for tabular text. - hyphenchar=0 didn't prevent the hyphen, and resulted in wrong line length calculation. - hyphenchar=0 and (new) hyphenchar=none can be used to suppress the hyphen character for soft or forced hyphenation in non-symbol text. This is particularly important for CJK text. - 2004-07-08 Using the UniJIS-UCS2-HW-H and UniJIS-UCS2-HW-V CMaps for the KozMinPro-Regular-Acro and KozGoPro-Medium-Acro fonts resulted in wrong stringwidths for ASCII characters because these fonts contain only proportional ASCII characters, but not any halfwidth forms. Now these combinations are discouraged in the manual, and will result in an exception. - 2004-07-07 Updates the Python binding and samples to the PDFlib 6 API. ============================== PDFlib 6.0.0p1 (July 06, 2004) ============================== - 2004-07-06 The Python wrapper expected the "reserved" argument for PDF_makespotcolor() although this is required only in the C language binding. - 2004-07-06 The PHP wrapper contained in pdflib-2.0.tgz had a bug in PDF_setcolor() which resulted in an incorrect third color value. Precompiled binaries did not suffer from this bug. - 2004-07-03 Uses the library function localtime_r() where available (instead of localtime()) to achieve thread-safety. - 2004-07-01 In REALbasic on Windows file names were converted to UTF-8, i.e. non-ASCII characters modified file names. - 2004-06-30 PDF_create_action() was allowed object scope, but using the "scriptname" option without any open document would result in a crash. - 2004-06-29 Textflow didn't move the y position to the next line for text lines which completely consist of space characters. - 2004-06-29 An exception "Option xy not found" happened when multiple (deprecated) viewer preferences parameters were supplied to PDF_begin/end_document(). - 2004-06-28 PDF_end_document() crashed when linearisation was enabled and bookmark destinations were defined. - 2004-06-25 PDFlib for PHP wouldn't load on some Unix platforms due to missing linearization code (plop_lin_init()). - 2004-06-25 Updates the Tcl binding to the PDFlib 6 API. - 2004-06-23 Fixed alignment problems on platforms which restrict access to short variables (HP-UX, SGI, Tru64, Linux Itanium). - 2004-06-24 The .NET version could raise a wrong exception for non-winansi file names. - 2004-06-23 Various EBCDIC-related fixes. - 2004-06-24 Textflow could break lines before an apostrophe character (U+0027). Now this character is considered a regular character without any break opportunity before or after. ============================ PDFlib 6.0.0 (June 21, 2004) ============================ Bug fixes ========= - The tempdirname and tempfilenames were not implemented. - TrueType host fonts didn't work with the Carbon build on the Mac. - 8-bit file names didn't work properly. - Lots of portability and robustness fixes, including EBCDIC conversion. - When an empty filename was supplied to PDF_begin_document() an exception "Parameter len has bad value" could be raised due to over-agressive parameter validation. - Lots of minor improvements, mainly for portability and robustness. - Fixed a crash when creating Tagged PDF with a large number of structure elements. - AFM files with "StartKernPairs 0" have been rejected when kerning=true. - Really fixes the problem of left-over linearization temp files on Mac and Windows. New features ============ - Adds the PECL package to the PDFlib distribution package. - Various improvements for making insert page and suspend/resume page compatible with other features such as bookmarks and named destinations. - Modified the PDF_begin_item() interface: parent and index are no longer parameters, but options instead. This abbreviates the majority of calls which create the elements in their natural order. - Normalize file names which are written into the PDF output, e.g. external link targets. - Implements the option "globaltextformat" for textflow. ================================== PDFlib 6.0.0 beta 2 (May 25, 2004) ================================== Bug fixes ========= - Fine-tuned the interaction between the width/height parameters and options in PDF_begin/end_page_ext(), and the relation to the topdown parameter or option. - The memory for an ICC profile supplied as a virtual file in memory could get freed twice unless the "copy" option in PDF_create_pvf() was set. - Linearization left over temporary files on non-Unix file systems, in particular Mac OS Classic and Windows. - Textflow ignored the tab in a tab+space combination. - The character combination space+tab in textflow could create a random character in front of the tabbed text. - Embedded TrueType/OpenType subsets were too large since they still included additional tables which are only useful for debugging, but not required in production mode. - The "topdown" in PDF_begin_page_ext() didn't work correctly (mirrored text output). - The ToUnicode CMap contained wrong entries for core fonts or fonts loaded with an AFM metrics file if "unicode" was supplied as encoding. - PDI: characters outside the range 0x21-0x7E were considered illegal in names, although the PDF reference says that #XX notation for those characters is recommended but not required. New features ============ - Adds support for hooking up XMP metadata in the document Catalog. - Adds support for supplying /SeparationInfo for a page. - Adds support for resolving numeric and character entity references in content strings (charref option and parameter). - Supports multi-byte code pages on Windows, e.g. cp932 with Shift-JIS. Bindings ======== - C++ - Removed the obsolete overloaded open() methods. - PHP - Extends support for the object-oriented interface in PHP 5, and improves exception handling. ==================================== PDFlib 6.0.0 beta 1 (April 22, 2004) ==================================== Note: only minor changes and bug fixes are listed here; for major new features please review the PDFlib manual. New features ============ - Full support for the Orientation tag in TIFF files; this involved disabling the partial implementation of orientation support which was present in TIFFlib. Honoring the Orientation tag can also be disabled via a new option. - The following encoding tables have been extended to allow the identical Unicode values in the respective slots: iso8859-? and U+0000: 0x00-0x31 and 0x7F-0x9F winansi, cp????, and pdfdoc: 0x00-0x31 ebcdic: 0x00-0x39 (non-contiguous Unicode values as per transformation table) This allows control characters such as linefeed to be used within these encodings. - No longer convert \n and \r in 8-bit hypertext strings to space to allow using linefeeds e.g. for annotations. - Supports the following CMaps introduced in PDF 1.5: UniGB-UTF16-H, UniGB-UTF16-V, UniCNS-UTF16-H, UniCNS-UTF16-V, UniJIS-UTF16-H, UniJIS-UTF16-V, UniKS-UTF16-H, UniKS-UTF16-V. - PDF_stringwidth() returns proper string widths for the following CMaps: UniJIS-UCS2-HW-H, UniJIS-UCS2-HW-V. - Adds special Unicode handling for TrueType and OpenType fonts: Unicode values without any corresponding glyph ID in the font will be mapped to a visually equivalent Unicode value < 0xFF if such a value is available in an internal table (instead of mapping to the space character. The table currently holds entries for hyphen, minus, mu, asterisk and a few other glyphs which often generate problems with common fonts. - PDF_fit_textline() now sets the text position to the end of the placed text so that it can be queried with the textx/texty parameters. Bug fixes ========= - When the "rotate" option or property was supplied only the block contents were rotated, but not the rectangular area and the border. This bug was only visible when bordercolor or backgroundcolor was supplied. - TIFF images would appear flipped horizontally if pass-through mode was not active and the TIFF contained an Orientation tag with one of the values 3, 4, 7, or 8. - If one or both scaling factors in PDF_fit_image() were negative PDFlib, used a line through the reference point for mirroring. Now a line through the mid-point of the image is used, i.e. the image is mirrored "in-place". - Using the same font twice, with "unicode" and "glyphid" encoding, and emitting the exact same set of glyphs for both combinations resulted in two font subsets with the same font name prefix, which some versions of Acrobat don't like (although the font data streams were identical). - Improves the AFM parser to gracefully handle exotic AFMs: - Throws a warning (which can be disabled with the fontwarning parameter or option when an unsupported AFM flavor is parsed. Unsupported are ACFM, AMFM, or AFMs for CID fonts. - New keywords are known to the parser, and they no longer throw an exception. - Hexadecimal character codes and all horizontal metrics data are now supported. - Fixed a crash with AFMs containing less than 256 characters along with "unicode" encoding. - PDF_stringwidth() returned incorrect results for 8-bit encodings with a character different from space at 0x20 when wordspacing was set. - Optimizes the case where the client loads a font, but never uses it. Previously this resulted in redundant font objects; now these will be detected and don't show up in the PDF output. - TrueType fonts with iso8859-1 encoding will no longer be written as a CID font, but rather a plain TrueType font with /WinAnsiEncoding. - Modifies handling of the "mu" glyph: the built-in encoding definitions including winansi now contain U+00B5 for "mu" (MICRO SIGN); encoding slots which require SMALL GREEK LETTER MU still map to U+03BC. Finally, U+3BC is reverse-mapped to "mugreek". This has the following consequences: - The mu character disappeared in TrueType fonts which include a Unicode mapping for U+00B5, but no mapping for U+03BC. Now it works. - The "mu" glyph works in Greek Type 1 fonts containing a "mu" glyph only if the font is used with "builtin" encoding (=uses encoding scheme "fontspecific"). For example, the "mu" will drop out when using the standard Symbol font with "iso8859-7" encoding. Bindings ======== - C++ - Removed the conditional code for compiling the C++ wrapper without support for C++ exceptions. - REALbasic - Introduce a new binding and examples for REALbasic on Mac and Windows.