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, the PDF import for a major commercial vector graphics package, and
provides services for our own Vector graphics
concept.
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 ommisions
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)
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)
Download
Version 0.3
Program, source code and online documentation.
Earlier versions: Version 0.2 | Version 0.1
Contact
By email
PDF Solutions
We can supply Custom PDF tools.
Page last updated: 5th March 2008