The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl module CAM::PDF

1.54  26 Mar 2011
      [FIXES]
      - appendPDF was broken intermittently if appended doc was bigger than main doc
        Thanks to Charlie Katz for a sample PDF

1.53  25 Mar 2011
      [FIXES]
      - Handle PDF 1.5 case where "endstream" token crosses a 1024-byte boundary
        Thanks to Charlie Katz for a sample PDF
      - Allow whitespace after the 'stream' token for better interoperability
        http://rt.cpan.org/Ticket/Display.html?id=42819
        Credit to Vonne 'Robert' Bannavong
      - Fix broken crunchjpgs.pl, patch submitted by George Greer
      - Tolerate leading zeros on objnums and gennums
        http://www.cpanforum.com/posts/11494

1.52  02 Oct 2008
      [FIXES]
      - Better handling of failures during filter loading
        (rlane10 via http://www.nntp.perl.org/group/perl.cpan.testers/2008/10/msg2361238.html)

1.51  28 Sep 2008
      [FIXES]
      - Support PDFs with 24-bit offsets in the xref stream (PDF v1.5 only)
        (thanks to Dan Richman for reporting the problem and providing an example)

1.50  20 Sep 2008
      [ENHANCEMENTS]
      - Support for reading PDF 1.5 compressed object streams and cross reference streams.
        (we cannot write this style, but we can append to it)
      [FIXES]
      - Decompression of PNG-filtered streams was totally broken.
      - Deleting pages now also deletes back references from annotations on that page.
      - cleanse() now removes PieceInfo data.  I have no idea what
        PieceInfo does, but it had a whole bunch of page back links
        that broke page deletion.

1.21  13 Aug 2008
      [FIXES]
      - Permit comments after the %%EOF, like Adobe Reader does.  Thanks to
        Malcolm Cook for pointing out the incompatibility.

1.20  26 Jun 2008
      [ENHANCEMENTS]
      - Support for Type 2 encryption (just reading, not writing)
      - Support for reading PDFs where the owner and user passwords
        are different
      - Improvement to performance of node traversal, inspired by
        RT #35555 (credit Eric Hall and his anonymous employee).

1.13  23 Apr 2008
      [FIXES]
      - setpdfbackground.pl computed RGB values incorrectly.  Thanks to
        Andrew Cadman for finding the bug and suggesting a fix

1.12  27 Nov 2007
      [FIXES]
      - I just realized that CAM::PDF::Renderer::Text was useless
        because it just printed to STDOUT.  Fixed to offer a
        toString() method instead.  Fuse::PDF wants this feature.
      - Fixed a typo in the Synopsis of CAM::PDF::Content

1.11  20 Nov 2007
      [ENHANCEMENTS]
      - added previousRevision() and allRevisions() [invented in Fuse::PDF]
      [INTERNALS]
      - Compliance with Perl::Critic v1.080

1.10  24 Mar 2007
      [FIXES]
      - RT #25306, regression in rangeToArray

1.09  25 Feb 2007
      [FIXES]
      - Restore Perl 5.6.x compatibility which was broken in 1.08
        (credit Brian Casey of rootlevelservices.com)
      - Detect end-image tag accidentally embedded with an inline
        image (credit Christian Drechsler)
      [INTERNALS]
      - Changed maintainer from CLOTHO@cpan.org to CDOLAN@cpan.org

1.08  17 Oct 2006
      [FIXES]
      - Add binmode() for Windows (RT #22136)
      - Fix addFont() where there is no 'Font' property (RT #22049)
      [INTERNALS]
      - Compliance with Perl::Critic v0.21 and Bangs
      - Moved the examples from scripts/ to bin/

1.07  11 Jul 2006
      [ENHANCEMENTS]
      - Add background_color options to fillFormFields
      [FIXES]
      - Add binmode() for Windows (RT #22136)
      - Documentation and copyright year
      [INTERNALS]
      - Compliance with Perl::Critic v0.17

1.06  20 Mar 2006
      [ENHANCEMENTS]
      - Added scripts/setpdfbackground.pl program
      - Added getPageDimensions() method

1.05  06 Dec 2005
      [FIXES]
      - Forgot to import Carp::cluck

1.04_01  30 Nov 2005
      [ENHANCEMENTS]
      - Docs
      [INTERNALS]
      - Refactoring
      - Add an ENV flag to skip some tests

1.03  20 Oct 2005
      [ENHANCEMENTS]
      - Regression tests
      [FIXES]
      - Fixes for deletePages with initial support for Dests and Outlines
      [INTERNALS]
      - Some code cleanup

1.02_01  18 Oct 2005
      Broken CPAN release!
      [ENHANCEMENTS]
      - Add options hash to the constructor.
      - Documentation
      [FIXES]
      - Regression: parseStream must be able to be called as a class method
      [INTERNALS]
      - Code refactoring.

1.01  20 Sep 2005
      [INCOMPATIBLE]
      - The API for CAM::PDF::Decrypt changed.  Several methods now
        require a CAM::PDF instance as a first argument.
      [FIXES]
      - Remove instances of circular references so CAM::PDF instances
        are able to be garbage collected.

1.00  19 Sep 2005
      [FIXES]
      - Fix an artificial limitation of the encryption module

0.99  22 Apr 2005
      First CPAN release
      [INCOMPATIBLE]
      - Relicence from GPL-only to GPL+Artistic
      [FIXES]
      - Debug asciify shell script
      - Read error on fontmetrics Width array (bounds error)
      [INTERNALS]
      - Add handy nodeType function

0.98  30 Nov 2004
      [ENHANCEMENTS]
      - Added better position support to GS
      - Added support for color devices in G
      - Prepend
      [FIXES]
      - addFont now checks that the font does not exist before adding
      [INTERNALS]
      - load Data::Dumper on demand only

0.97  09 Nov 2004
      [FIXES]
      - Tree validation fixes
      - Pass textwidth into the renderText() function
      - Page validation: string vs. hexstring


0.95  18 Jun 2004
      [ENHANCEMENTS]
      - New methods: addFont, wrapString
      [FIXES]
      - Debugged: graphic state computation

0.94  13 May 2004
      [ENHANCEMENTS]
      - New methods:
        getFontNames
        getFonts
        getFontByBaseName
        deEmbedFontByBaseName
        deEmbedFontObj
      - pdfinfo.pl - more detailed output
      - deillustrate.pl - new script to remove Illustrator metadata
      [FIXES]
      - disable the "node has only one kid and no parent" error
        This is a case where the delete code does a poor job of
        maintaining a balanced page tree and then complains about it's
        own bad work.  This should eventually be fixed, but for now,
        removing the die() is good enough.

0.93  29 Mar 2004
      [FIXES]
      -  Fix for font de-embedding to remove unused font widths

0.92  30 Jan 2004
      [ENHANCEMENTS]
      - Add deEmbedFont() method
      [FIXES]
      - Fix a new bug in the page range code

0.91  30 Jan 2004
      [ENHANCEMENTS]
      - Add listfonts.pl
      [FIXES]
      - Fix bug regarding page number ranges in getpdftext.pl and
        rendertext.pl
      - Fix MANIFEST

0.90  18 Sep 2003
      [INCOMPATIBLE]
      - Rename revert.pl to revertpdf.pl
      [ENHANCEMENTS]
      - Add documentation to all scripts
      - Ensure that all scripts respect PDF Modify permission
      [INTERNALS]
      - Add functions to facilitate testing PDF permissions

0.80  16 Sep 2003
      [ENHANCEMENTS]
      - Lots and lots and lots of documentation
      - Use Module::Build
      [FIXES]
      - Caught a couple little bugs in Decrypt.pm
      - Clean up some obsolete code in the Decrypt module

0.75  11 Sep 2003
      [FIXES]
      - Fix little bug in getStringWidth method
      - Minor bugfix in debugging function

0.74  29 Aug 2003
      [FIXES]
      - Better handling for loading Text::PDF::Filter library
      [INTERNALS]
      - Split GS.pm into two parts for performance

0.73  11 Aug 2003
      [FIXES]
      - Font metric widths were not properly dereferenced, in the case
        of indirect objects
      - Page content "cm" directives (transform user coordinate system
        matrix) were replacing the current matrix instead of appending
        to it.

0.72  26 Jun 2003
      [ENHANCEMENTS]
      - Add documentation for extractPages
      [FIXES]
      - rangeToArray() bug fixes in the corner cases, added tests
      - Fix number of tests

0.71  25 Jun 2003
      [ENHANCEMENTS]
      - add extractPages()
      - add more tests
      [FIXES]
      - Fix bug in deletePages

0.70  24 Jun 2003
      [ENHANCEMENTS]
      - Convert parser to non-destructive for higher speed
      [FIXES]
      - Fix a bug in the test script

0.65  24 Jun 2003
      [ENHANCEMENTS]
      - Add toPDF() and needsSave() methods.

0.64  24 Jun 2003
      [ENHANCEMENTS]
      - Add PDF.pm dcumentation
      - Add isLinearized() method
      - Add more output for pdfinfo.pl
      [FIXES]
      - Fix bug in syntax for page "d" element (numbers, not just integers)

0.63  22 Jun 2003
      [ENHANCEMENTS]
      - Added PDF test document
      - Added pdfinfo.pl script
      - Added toString method on CAM::PDF::Content class
      - Added writeInlineImage method to support above
      [FIXES]
      - Simple bug fix in writeAny error message

0.62  09 Jun 2003
      [ENHANCEMENTS]
      - Add Images renderer
      - findImages() content method
      - Add prependPDF to function list
      [FIXES]
      - bug fix

0.61  22 Apr 2003
      [ENHANCEMENTS]
      - Added prependPDF(), deletePages(), and rangeToArray() methods
      - test.pl overhaul
      - a little debugging output in getPage()

0.60  04 Apr 2003
      [ENHANCEMENTS]
      - Graphics state and rendering, some little code clean ups
      - Make output function more mod-perl friendly
      - Add page content validation
      - Add parsing of inline images
      - Add better Tj/TJ handline
      - Add check option to getpdftext.pl
      - Simplify BT treatment
      - Enhance the content reading by using native PDF data type
        parsing (converted the parsing functions to be either instance
        or class methods)
      - Special heuristic treatment of TJs
      [FIXES]
      - Add getpdftext.pl to the manifest

0.50  01 Apr 2003
      [ENHANCEMENTS]
      - Add page content parsing
      - Add script to output page text content
      - Overhauled fillForm to do things like use inherited form field
        values, do justified text, do autosized text.  This requires
        the use of the Text::PDF font utilities.
      - Handle multiline form widgets
      [FIXES]
      - Fix font autosizing to account for multiline fields

0.42  19 Feb 2003
      [ENHANCEMENTS]
      - Add getFont() function and supporting script
      - Add deletePage() function
      - Add deletepdfpage.pl script
      [FIXES]
      - Expect Encoding key in resource dictionary
      - Expect font size zero in form widgets
      TO DO: properly treat font size zero as autoscaled font

0.39  28 Oct 2002
      [ENHANCEMENTS]
      - Add return of number of successes to fillformfields

0.38  28 Oct 2002
      [ENHANCEMENTS]
      - Added clearAnnotations and addPageResources
      [FIXES]
      - Fix appendPDF
      - Add appendpdf.pl to the MANIFEST

0.37  04 Oct 2002
      [ENHANCEMENTS]
      - Add appendPDF() function and a script to facilitate PDF merging
      - Support for removal of decryption blocks
      - deleteObject function
      - Add support for the "null" object type
      [FIXES]
      - Fix and enable the cleanse function.  I can't make this
        function fail any longer.  Yay!
      - Fix typo for free block in xref dictionary creation
      - Catch undef objects in fillFormFields

0.35  29 Jul 2002
      [ENHANCEMENTS]
      - Add clearFormFieldTriggers function
      - Make buildNameTable work on fonts as well as xobjects
      [FIXES]
      - Fix dereference() documentation.
      - Change "if" to "while" in check for cmd line arguments
      [INTERNALS]
      - Moved uninlineImages function into library from script
      - Made some improvements to the embedded image detection logic
      - Change data structure for nodes from arrayref to object (hashref)

0.31  14 May 2002
      [INTERNALS]
      - Reorganize directory

0.30  13 May 2002
      [INCOMPATIBLE]
      - Change package name from PDF to CAM::PDF
      [ENHANCEMENTS]
      - lots and lots of documentation
      [FIXES]
      - fix undef bug in getFormField

0.23  26 Apr 2002
      bugfixes

0.22  19 Apr 2002
      [ENHANCEMENTS]
      - Password fields
      - Make Makefile.PL smarter -- read MANIFEST itself
      [FIXES]
      - Fix delinearize for non-linearized files
      - Font tweaks in form filling
      - Add listpdffields.pl to the manifest

0.21  15 Apr 2002
      [FIXES]
      - Improvements to form handling
      - Bug fixes in output of xref

0.20  12 Apr 2002
      [ENHANCEMENTS]
      - Add .pl files to manifest

0.10  12 Apr 2002
      [INCOMPATIBLE]
      - Change how the changestring code works with regex values
      [ENHANCEMENTS]
      - Form fields
      - Remove extra files from make process
      - Support for:
        different PDF versions
        concatenated strings
        \ continued lines
        \ escaped characters
        cleaner output formatting
        some dictionary sorting (special cases)
      - mac2unix support in asciify
      - verbose option in extractallimages.pl
      - pdf versioning in rewritepdf.pl
      - new revision reversion tool
      [FIXES]
      - Fix bug for \n in string
      - Fix string output implementation (used to break Acrobat5 and Xpdf)

0.01  13 Mar 2002
      [ENHANCEMENTS]
      - JPG options; PDF stamping functions
      - Cmd line options for tweaking jpg compression
      - Add JPEG quality flag
      - Added support for messing with images
      [FIXES]
      - Fix bug in escaped strings
      - Fix permission modification

0.01  22 Feb 2002
      [ENHANCEMENTS]
      - encryption/decryption
      - some documentation

0.01  18 Feb 2002
      [ENHANCEMENTS]
      - Search-and-replace text in a PDF doc
      - Program to change all reference objects
      - add cleanse feature (which breaks acrobat), fix some traverse bugs
      - Inline image uninlining

0.00  15 Feb 2002
      Initial import