The Version History shows when features were added or bugs fixed. Here are the most recent entries:
1.12 - November 9, 2004
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 - [old source code] - [old windows exe]
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 - [old source code] - [old windows exe]
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 - [old source code] - [old windows exe]
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 - [old source code] - [old windows exe]
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.
Renamed the CC_OPTS Makefile macro to CXXFLAGS, for uniformity.
0.94 - March 24, 2004
Fixed a string copy bug in pdftk.cc.
Fixed unicode string output so it drops initial, signature character.
Fixed nagging gnu.java.locale.Calendar static linking problem (Windows).
Made more improvements towards gcc/gcj 3.2 compatibility (e.g., RedHat 8, 9).
Added macros to Makefiles, for easier porting.
Added simple return codes: 0 --> Success, 1 --> Error, 2 --> Exception. Some exceptions will return an "Error" return code.
Removed warning issued when an input PDF has no ID string.
Empty Info fields no longer reported on dump_data.
Added newline to end of --help output.
0.93 - March 7, 2004
Removed restriction on the number of input documents. For example, you can now run:
pdftk *.pdf cat output combined.pdf
to assemble any number of PDFs into a single document.
Made pdftk run silently by default, and added the verbose output option for when you want detailed feedback.
Changed the encryption strength default from 40-bit to 128-bit.
Improved file open error handling and reporting. If pdftk can't open a PDF, it tells you why.
Added RedHat9 and Mandrake makefiles (Thanks to Andre Gompel and Pablo Rodríguez). Support for these platforms is still experimental.
Copied the MD5 code from libgcj into our tree, to improve support for older compilers/libraries. This should improve RedHat9 and Mandrake support.
Removed pointless warning sometimes issued by the libgcj security class.
Added debian directory and Aurélien's man page, updated man page.
Reorganized Makefiles (thanks Andre).
0.92
Added logical page numbering (a/k/a page labels) to dump_data operation.
Appended .omit extension to a few iText files we don't use, to speed compiling.
0.91
Removed restriction on adding the same page from the same PDF more than once.
Added Solaris Makefile.
AllFeatures permission now implies 'top quality' printing, not 'degraded' printing.
Fixed handling of 'empty owner password' case during output encryption.
Added test to make sure the user password is not the same as the owner pw.
CopyContents also allows ScreenReaders.
ModifyAnnotation also sets the FillIn bit.
ModifyContents also sets the Assembly bit.
Updated usage information.
Added --version switch.