==================================
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.
  TEXTA<textoption><fontchange><nextline><fontchange>TEXTB

  Here TEXTB didn't get the option <textoption>.

- 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:
  - "<leftindent=...>\t": the indentation will be ignored
  - with "\t<space=...>" the additional space will be taken into account
  - the combination "\t<leftindent>" 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
  <nextline> or <resetfont> 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  <optlist>   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.
