Revision history for PDF::Tiny

0.09    16 July, 2017
      • Incompatible change:
        • The xref method has been removed.  Its API was too volatile,
          and it would likely have continued to change.
      • New feature:
        • The ‘modified’ method now accepts "trailer"  as an argument,
          so you can append to a PDF file after  modifying  just  the
          trailer and nothing else.

0.08    7 April, 2017
      • Uncompressed streams can now  be  read  [ #120836].
        Thanks to Pali for the patch.

0.07    6 March, 2017
      • import_page  has been fixed not to give pages the wrong  size
        if the source PDF happens to have the size  (MediaBox)  speci-
        fied both in the page tree and on the page itself.

0.06    5 March, 2017
      • The print method no longer uses tell, which means that it now
        produces a correct cross-reference table when printing  to  a
        file handle for which tell returns no useful value.
      • It is much faster now when handling files  with  hundreds  of
        pages (thanks to Devel::NYTProf).

0.05    4 March, 2017
      • New features:
        • PDF 1.5 (Acrobat 6)  cross-reference and object streams can
          now be read.  (Hybrid-reference files  are  not  fully  sup-
          ported.  The streams will be ignored.)
        • New decode_stream method.
      • API changes (all low-level):
        • get_obj now returns nothing for the null object (since null
          is supposed to be equivalent to a nonexistent  entry;  this
          should make code that calls it simpler).
        • Similarly, dictionary elements containing null are stripped
          at parse time.
        • The format of the xref hash has changed. It can now contain
          array refs (for objects in object streams).
      • Bug fixes:
        • parse_string with one argument no longer hangs if it encoun-
          ters an incomplete string token (e.g., ‘(foo’).
        • get_obj will now fetch the  keys  of  a  stream  dictionary
          (e.g.,  $pdf->get_obj(qw< /Root  /Pages  /Kids 0  /Contents
                                    /Filter >)).
        • vivify_obj  now correctly uses an empty  parsed  dictionary
          object for a stream’s second element, instead of a hash ref.
        • Conversion of  flat objects  into first-class  objects  (as
          advertised in the docs) actually works now.
        • Page-handling functions now work with PDFs that have nested
          page arrays.

0.04    2 March, 2017
      • Files smaller than 1K can now be opened.

0.03    2 March, 2017
      • Editing an existing PDF without an ID (very rare)  was result-
        ing  in  existing  object  numbers  being  reused.  This  has
        been fixed.
      • Numerous bugs have been fixed relating to parsing and  serial-
        ization of PDF strings:
        • Parsing of very long strings used to get stuck in a loop.
        • Output of such strings contained overlong lines.
        • Escaped line breaks are now correctly ignored.
        • Carriage returns are now emitted as \r (as-is they would be
          interpreted as line feeds).
        • Hex strings are no longer split with \<nl>  on output,  but
          simply with new lines.
        •‘Flat’  objects are now emitted as they are,  and not  split
          with \<nl>.

0.02    26 February, 2017
      • insert_page  and  get_page  (and,  under  some  circumstances,
        delete_page), are now significantly faster.  The speed differ-
        ence will only be noticed if the PDF has hundreds of pages.
      • Added benchmarks.

0.01    25 February, 2017
        First release