General Notes about PDF Support

PDF support is built on top of the Apache PDFBox libraries. PDF files are highly variable. Not all PDF reading software can read the output from all PDF writing software, even if both the reader and the writer are attempting to follow the specification. If you find a PDF file that PDFBox can’t read, it’s unlikely that it’s a problem XML Calabash can fix. (In the course of developing the cx:pdf-form step, for example, testing turned up several PDF files that PDFBox couldn’t update because of missing fonts.)

All of the PDF steps have a password option. This is only required to load encrypted PDF files. Loading an encrypted PDF always removes the security settings. If you need to restrict a modified PDF, use cx:pdf-encrypt as the last step.

The compression option, on steps that create PDF files, determines whether the resulting PDF is compressed. PDFs are compressed unless “none” is specified for compression.

Some complex features, like managing digital signatures, aren’t supported in XML Calabash but possibly could be. Feel free to open issues, but if you can’t provide samples that demonstrate what’s required, it may not be practical to implement the features.

Dependencies

These steps and their dependencies are included in the XML Calabash application. If you are getting XML Calabash from Maven, you will also need to include the following additional dependencies:

  • org.apache.pdfbox:pdfbox:3.0.7
  • org.apache.pdfbox:pdfbox-io:3.0.7
  • org.apache.pdfbox:xmpbox:3.0.7