================================
PDFlib 6.0.1 (November 22, 2004)
================================

- 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.
