Fixed an input bug to allow interactive prompting of both the user and owner passwords.

Fixed a burst bug so that doc_data.txt is now output to the same directory as the PDF's pages when an output directory is given.

Fixed a bug where indirect references to the PDF ID in the trailer would cause a crash.

Added a test to fill_form so it checks that an input PDF is a form before trying to fill it with data.

Added a return value of 3 for warnings 'PDF information not added' or 'PDF form not filled.'

Improved the error message for cat page range errors.

Fixed the error report when an input page number is out of range.

Fixed a burst bug where document metadata wasn't being copied properly to the output PDFs.

Updated the Bouncy Castle library to 1.48.

When using the cat operation, the output PDF version number is now set to the maximum PDF version of all of the input PDFs. If any of the input PDFs have PDF extension levels, then the greatest extension level is also copied to the output PDF.

Added record delimiters to dump_data output to help make parsing more reliable.

The changes to dump_data output (described above) are also now required for the input to update_info.

You can now use multi-character input handles. Prior versions were limited to a single character, imposing an arbitrary limitation on the number of input PDFs when using handles. Handles still must be all upper-case ASCII.

Added means of referring to PDF pages in reverse order. By prefixing a page number with an r, it counts from the end of the document. For example, r1 is the last page, r2 is the next-to-last page, etc.

Introduced update_info_utf8, dump_data_utf8 and dump_data_fields_utf8 to provide UTF-8 companions to update_info, dump_data and dump_data_fields. These latter operations use XML numerical entities to encode non-ASCII characters. In version 1.43, we changed the encoding for update_info to UTF-8, but that made it incompatible with dump_data and also broke some downstream applications. By introducing these UTF-8 operations, we can revert update_info to its original behavior.

Burst feature now copies the metadata (including XMP) from the input file to the output pages.

Added option of prompting the user for the output when bursting a PDF. Also reviewed other filename prompting code.

Changed the PDF parser to accept name tokens longer than 127 characters — the PDF Specification says that 127 is the limit. This isn’t related to file names. The issue arose with PDFs created by Acrobat Web Capture 9.0.

Fixed a problem with filling form choice fields in some PDFs where the old form value was ‘sticking.’

Changed pdftk behavior when handling subset fonts so it doesn’t alter font name "tags." This was causing printing problems with Acrobat 3.01 on Windows.

Fixed a bug that corrupted output PDF xref tables. This corruption was mild but universal. Most PDF tools can cope with the corrupted PDFs, but I recommend upgrading from 1.40 to 1.41 as soon as possible. This bug was introduced in version 1.40 — version 1.12 does not have this bug.

Fixed a bug that prevented XFDF form data from being passed to pdftk via stdin.

Commented out some unused code from pdftk.cc.

1.40 - September 19, 2006

Added the stamp operation, a natural complement to the existing background operation.

Added the page rotating patch provided by David Fabel &mdash thanks! Tweaked the patch so it handles a greater variety of input syntax (e.g., 1-20evenE).

Fixed a bug where the presense of page annotations in some PDFs would cause pdftk to crash. This bug first emerged when processing a PDF created by FPDF (version 1.52) that contained web links. Turns out that pdftk erroneously expected all page annotations to be indirect objects. This assumption has been removed from the code.

1.11 - November 3, 2004

Fixed a couple bugs in the dump_data_fields form field reporting. Also improved this feature so it now reports all possible settings for check box, radio button, list box and combo box form fields.

1.10 - October 27, 2004

Fixed the background feature so it handles rotated pages (input PDF or background PDF) better. Pdftk will transform the background PDF page so that its orientation is preserved on every page of the output PDF, even on input PDF pages that are rotated. I chose this logic so as to give the user greater control over the results; rotate pages before processing to achieve the desired output. Let me know if this logic is too inconveniet for you.

Fixed form field handling when combining PDF pages. Pdftk used to permit duplicate form field names, which is illegal PDF. Now, pdftk detects duplicates and adds name prefixes as needed. If no duplicates occur, then no changes are made. If an input PDF has a field represented by multiple annotations, then that is respected and preserved in the output.

An especially nice upshot to this new handling is that you can now assemble duplicate PDF forms and not end up with all of their fields echoing each other (as you get with Acrobat). Run pdftk A=form.pdf cat A A A output formX3.pdf and you’ll get a form that behaves as you would expect.

Added stdin support for input PDF, FDF, or Info files (thanks to Bart Orbons for this patch).

Added a means for users to control the output PDF filenames when using the burst feature: pass in a printf-styled format string via output (documented above).

Changed background command-line syntax, so it is an operation instead of an output option. The old syntax also works, for backward compatibility.

Now shuffling subset font name prefixes for input PDFs, to prevent duplicates.

Updated Makefile.Mandrake according to feedback from Larry Gilliland.

Reduced the Windows EXE filesize using UPX, as suggested by Ralf Koenig.

1.00 - August 14, 2004

Upgraded the iText library we use to itext-paulo rev. 132, which resolved a bug involving bookmark page references in dump_data output.

Fixed the problem of form fields getting corrupted by splitting or merging PDF form pages.

Building the Windows binary using libgcj 3.4 seems to have fixed the problem of using accented characters in filenames and paths.

Added these new operations: fill_form, update_info, attach_file, and unpack_file.

Added the background and flatten output options.

Added the do_ask interactive mode (the default on Windows) that asks before overwriting files and asks for passwords to input PDFs, if necessary. Also added the dont_ask mode (the default on Linux), for hands-free operation.

Many input fields can be substituted with PROMPT, which cues pdftk to ask the user for a filename or password upon execution.

Added output to stdout via output -.

Using the uncompress option now also adds page numbers to page dictionaries, for easy lookup. Find page N (1-based) by searching for /pdftk_PageNum N. Using the compress option removes these markers.

Added Mac OS X Makefile, and removed the optimization flag from the GCJ flags (which would cause trouble on older versions of gcc, such as 3.2.2) in all Makefiles.

Now catching PDF output open exceptions.

Builds now pack iText font afm files into pdftk, which are required for the new form filling feature.

0.941 - March 28, 2004

Fixed the ’Input_UnicodeBig not found’ error encountered by Windows users when using the dump_data or the burst operations on some PDFs.

Added an optimization flag to the gcj arguments. This can be adjusted or omitted by editing your platform-specific Makefile.