by David Kelly
The DITA Open Toolkit uses FOP to create PDFs directly from XSL-FO. There are many PDF features that XSL-FO and FOP cannot provide during this conversion—configuring PDF security features, for instance, and using EPS graphics. While attempting to provide better graphics for a customer, we realized that FOP can also transform XSL-FO to Postscript, and from there a second step could use Adobe Acrobat Distiller to create PDFs. Initial results are in, and like the Ronco Cap Snaffler, “It really, really works!” (In fact, it probably works better than the redoubtable Cap Snaffler itself.)
Using an FO-to-Postscript-to-PDF chain makes a lot of sense for creating PDFs. The ability to incorporate EPS files into PDFs makes it worthwhile by itself. But it also opens possibilities for fine-tuning PDFs. The Postscript-to-PDF phase invites the addition of a reference to a Distiller job option file. Using this arrangement, you could create different kinds of PDFs in a single workflow. Variations could include different page sizes, different optimizations (screen and print), and different security settings. I’m getting all Shamwow just thinking about it.
Adding Acrobat Distiller to the workflow also suggests the possibility of adding post-Distiller tools into the mix. It would be interesting to explore the ability to enable commenting by using a command-line based tool such as CAM::PDF or perform additional PDF configuration tweaking with a programming resource like PDF::API2 . It would also be interesting to see whether any of the MicroType TimeSaver/Assistants could be grafted into the workflow. I’m just blue-skying here.
The reference to the Ronco Cap Snaffler made me think of other inventions that could slice, dice, and automate PDF configurations. What could be more appropriate than the slapchop? How can you not think of the DITA Open Toolkit when you hear “You love salad.You hate making it.”?
I’d be interesting in hearing other possibilities you might think of for pre- and post-Distiller PDF functions that could be spliced into the Open Toolkit.