Version 1.5.10 (Release date: 2011-06-27) 
- Fixed setReadOnly() bug in button field groups. (If no changes to
the value were done, the read-only flag was not set.)
Version 1.5.9 (Release date: 2011-05-19) 
- Added support for RC4-128bit encryption with the use of crypt filters
(Encryption supported by Acrobat 6.0)
Version 1.5.8 (Release date: 2011-05-04) 
- Optimized and fixed handling of rotated form field fields
Version 1.5.7 (Release date: 2011-03-16) 
- Fixed some code, which still was locale aware
general changes in SetaPDF core:
- Changes in pdf_context to prevent a possible endless
loop on special OS / PHP combinations.
Version 1.5.6 (Release date: 2011-02-03) 
- Removed some Call-time pass-by-reference issues
- Corrected a check for unicode values in text fields
- Corrected font size calculation (size < 0)
Version 1.5.5 (Release date: 2010-06-29) 
- fixed a missing "endobj" token in the info dictionary.
general changes in SetaPDF core:
- Removed locale aware behaviour
- Optimized handling of zero size files
- Added handling of incorrect byte offset positions
- Fixed a bug related to the matching of the xref-keyword if its
near to the beginning of the file (<20 bytes)
- Added missing initial $filters-var which had produced a
warning on "compressed" xref streams without a filter
Version 1.5.4 (Release date: 2010-03-25) 
- Added PHP 5.3 support
- Added encoding property/parameter to the factory method.
This affects all string values or field names returned
by the API.
- Changed $encoding-parameter of all getValue()/getOptions() methods
to "null". In that case the encoding defined in the factory method
is used.
- Fixed bug for hex-values in option lists.
general changes in SetaPDF core:
- Simple fallback for errorious object offsets
- Removed wrapper_functions.php
- Updated stream wrappers
- Optimized support for stream wrappers
- Added a wrapper class around iconv for transparent en/decoding
of PdfDocEncoding and UTF-16BE
Version 1.5.3 (Release date: 2010-02-09) 
- Fixed missing char width issue with embedded fonts
- Fixed appearance with border color space in DefaultGray
- Fixed "missing" MK-dictionary (needed by Acrobat 8 in some situations)
- Fixed handling of file identifiers (only for encrypted documents)
- Automatic convertion of encoding in getValue()-calls can
be turned off by passing false to the encoding parameter.
The method will return the plain PdfDocEncoding or
UTF-16BE encoded string.
- Optimized error handling
- Optimized handling of missing /Field entry.
- Added some class_exists-checks
general changes in SetaPDF core:
- Fixed a bug in the xref parser function
(raised e.g. by PDF documents created with MS Office 2007 PDF Plugin)
- Changed "Decoders" folder to "Filters" renamed all classes
- Fixed missing filename in error message
- Optimized handling of very smal files through stream wrappers
Version 1.5.2 (Release date: 2009-05-19) 
- Optimized referenced object handling.
Version 1.5.1 (Release date: 2009-02-25) 
- Memory optimization through new destruct()-method.
- Fixed bug if normal appearance stream is an object relation.
- Fixed handling of checkboxes with same name and value.
- Fixed handling of radiobutton groups without an /Off state.
(depends on the previous fix "same name and value")
- Fixed handling of same named text fields while each has its own /V-key.
- Added escape sequence to XML data if richtext feature is used.
- Optimized rendering if unicode is used: The value will be converted to
another encoding (1-byte) when it will be written to the appearance
stream. If you use unicode this appearance will be overwritten by the
viewer at the end but with this fix it looks better in viewers that
don't support unicode.
- Updated demos.
Version 1.5 (Release date: 2009-02-16) 
- New feature: make form elements read-only.
- Fixed SetaPDF_ButtonField::setValue() - always "pushed" the button.
- Added SetaPDF_ButtonField_Group::setValue() as a public method.
- Fixed updating of compressed xref-streams.
general changes in SetaPDF core:
- Optimized parser for errorious documents.
(handling of unbalanced tokens in dictionaries)
- Optimized handling of documents including PDF comments
- Optimized output of very smal float values.
Version 1.4 (Release date: 2008-10-19) 
- optimized resolving of radio button names.
general changes in SetaPDF core:
- Added global cache function to the pdf parser class. This feature
allows you to cache objects and/or xref tables to your filesystem.
The cached data is reusable with any SetaPDF API. For often reused
documents this feature will bring an exiting performance boost.
For more informations see the manual of any SetaPDF API.
(http://www.setasign.de/support/manuals/)
- Fixed output of very smal float values.
- Unescaping of strings completely rewritten.
- Optimized document id updates
- Removed _fgets()-wrapper function from wrapper_functions.php
- Added Tools directory which includes some helper functions, like
stream-wrappers
- Optimized handling of documents including PDF comments
Version 1.3.4 (Release date: 2008-08-21) 
- fixed getValue() methods to work with unicode values
- fixed escaping/deescaping issue with encrypted strings
Version 1.3.3 (Release date: 2008-05-13) 
- fixed handling of zero values in /MaxLen entries for text fields
- fixed rendering issue with multiple space characters in multiline text fields
Version 1.3.2 (Release date: 2008-04-30) 
- Fixed handling of non existing normal appearance streams
- Added standard values for incomplete font data
Version 1.3.1 (Release date: 2008-04-21) 
- fixed hex2str and str2hex issue with encrypted documents
Version 1.3 (Release date: 2008-03-28) 
- Supports PDF files up to version 1.7 now! (no XFA forms)
- detection of the encryption dictinary optimized
- added new error code, which will be used if no font for a desired field
is found: E_SETAPDF_FF_NO_FONT_FOUND = 106
- added a __destruct() method, that will release memory after usage.
- optimized font handling if fonts were defined in a previous /DR or /AcroForm
dictionary.
- fixed escaping issue for text fields, that has comb set to true.
general changes in SetaPDF core:
- xref-parser method completely rewritten:
The parser is able to parse pdf documents with different lineendings
and doesn't rely on the "auto_detect_line_endings" setting anymore.
Also it is able to parse some errorious xref tables without perfomance loss.
Compressed xref-streams which were introduced in PDF 1.5 are supported now!
- The parser also supports compressed object-streams which were also introduced
in PDF 1.5 now!
- Added a new static method for smart pdf version retrival:
SetaPDF_Parser::getPDFVersionSmart($fileName)
- Added new error codes refering to the PDF 1.5 features
- Added new native PDF types to the parser: PDF_TYPE_REAL and PDF_TYPE_BOOLEAN
- Optimized the output to the filesystem through a buffer system so that less
writing procedures are required.
- Added a decoder for predictor algorithms (needed for compressed xref streams)
Version 1.2.3 (Release date: 2008-02-22) 
- fixed handling of linebreaks in the DA value of a formfield
- fixed font handling if fonts were defined in a previous /DR dictionary
- fixed related text fields handling if $dontReCreateAppearance was set to true
- optimized generation of the encryption key
(accept unsigned integer in /P entry)
- new method SetaPDF_FormFiller::getRelatedFields() returns related fields
(fields with the same name)
- Optional info dictionary update (usable for saveable forms)
- Fixed filename issue if resulting filename includes blank characters
- modified SetaPDF_field::getName($returnOriginalName=false) so it could be used
to fetch the real name, instead of the changed name if the fieldname exists
more than one time.
- optimized error handling for related fields
general changes in SetaPDF core:
- Parser parses new pdf type: real
- Fix for __autoload() on PHP5
- fixed issue with a stream length of zero
Version 1.2.2 (Release date: 2007-11-07) 
- fixed generation of encryption key if /O value is type of string while
/U is type of hex string
- optimized handling of objects with a generation number greater than 0.
- fixed bug for text fields if the new value is given in UTF-16BE and the field
has a maximal length entry.
general changes in SetaPDF core:
- optimized/fixed handling of documents with different line endings
- allows the search for the xref pointer to be variable in length.
This can be controlled by a global var $GLOBALS['SETAPDF_SEARCH_FOR_XREF_OFFSET'].
Standard value is 1500 bytes from the end of file.
- optimized match of the trailer-keyword
- optimized deescaping of strings
- misspelled constant name fixed: E_SETAPDF_ENC_UNSOPPORTED_REVISION becomes
E_SETAPDF_ENC_UNSUPPORTED_REVISION
(the old constant will still be available)
- prepared the parser to be used with stream wrappers (for the 8192 "limit" needed)
Version 1.2.1 (Release date: 2007-07-27) 
- fixed an issue in SetaPDF_TextField::setValue() related to unicode strings
Version 1.2 (Release date: 2007-07-24) 
- fixed handling if no font-size was found
- fix for fieldnames in UTF-16BE (mb_* seems to have a different behaviour
on different systems related to the BOM)
- fix for values in UTF-16BE (text + choice fields)
- fixed some undefinded index notices.
- fixed deescaping method
- fixed font widths extraction
- creates /NA entry for choicefields if not available
- minor changes in object-recreation process (handle null-objects correct)
- optimized xref-creation
- new feature:
- handle RTF text fields experimental
- allows the developer to prevent recreation of appearance if
$renderAppearancesByViewer is set (for speed optimization)
general changes in SetaPDF core:
- optimized string matching in pdf parser
- optimized error reporting in pdf parser
- the parser allows you to parse invalid files. This mechanism can be
controlled by a global variable named:
$GLOBALS['SETAPDF_PARSE_INVALID_FILES'] = (boolean)true/false
- added check for versioned files
Version 1.1.7 (Release date: 2007-06-11)
Version 1.1.6 (Release date: 2007-05-20)