Here’s a screenshot of an early version of our next product, a PDF editor for Mac OS X:
The architecture is:
- A plain C wrapper around the higher-level interface to the CamlPDF library (the same interface used by our command line tools)
- An Objective-C cocoa program using call-backs to Ocaml through the wrapper library
- Callbacks from Ocaml into C to deal with error reporting and progress-bar updates.
- CamlPDF is used for all the PDF modification. OS X Pdfkit is used for displaying the PDF and thumbnails in the document window.
The C wrapper will also be used to release a plain C version of our PDF tools to go with the .NET and command line versions, but not until the bugs are ironed out by using the same code to write the OS X product.
It ought to be possible to produce a Windows version of the product using the .NET version of CamlPDF at some point in the future.