CamlPDF
This is CamlPDF, an OCaml library for reading, writing and
manipulating Adobe portable document files. It is presented as a literate
program in the manner of Knuth. Since this is an implementation of someone
else's technology (unlike the rest of our work, which is new), we have decided
to release it for wider use.
CamlPDF consists of a set of low level modules for representing, reading and
writing the basic structure of PDF, together with an initial attempt at a
higher level API.
CamlPDF is released under a BSD licence with special exceptions. See the
LICENCE file in the source for details.
CamlPDF forms the basis of our PDF Command-line Toolkit
and .NET PDF Toolkit, and the PDF import for a major commercial vector graphics
package.
Features
- Support for PDF versions 1.0-1.7;
- Large file support: 64-bit file handles and fully tail-recursive;
- Lazy data reading, lexing and parsing - Optionally reads and processes data only when it's required;
- Depends only on zlib.
Notable Omissions
Modules
- Utility (generic functions)
- Io (generic I/O)
- Pdf (basic data types)
- Pdfwrite (write to file)
- Pdfcodec (compression and decompression)
- Pdfread (lexing and parsing)
- Pdfpages (lexing and parsing of graphics streams)
- Pdfdoc (document-level functions)
- Pdffun (PDF function parsing and evaluation)
- Pdftext (Fonts and text extraction)
- Pdfimage (Image extraction)
- Pdfcrypt (Encryption / Decryption)
- Fonttables / Glyphlist (Ancilliary font support)
- CFF (Type 1 fonts)
- Pdfspace (Colour spaces)
- Pdfannot (Annotations)
- Pdfmarks (Bookmarks)
- Pdfgraphics (Structured Graphics)
Examples
- Pdfhello (create a Hello World PDF)
- Pdfmerge (merge several files by concatenation)
- Pdfdecomp (decompress all streams in a file)
- Pdfdraft (replace images to produce a draft document)
- Pdftest (read, decompress, recompress and write a PDF)
- Pdfdecrypt (decrypt an encrypted PDF)
Download
Version 0.4
Program, source code and online documentation.
Earlier versions: Version 0.3 | Version 0.2 | Version 0.1
Contact
By email
PDF Solutions
We can supply Custom PDF tools.
Other software
Proper pages for these coming soon:
Camlpy - Ocaml / Python integration
Storing colours in 31 bits
A Caml Interface for the General Polygon Clipper
Page last updated: 20th Jan 2009
|