Skip to content


Subversion checkout URL

You can clone with
Download ZIP
OCaml library for reading, writing and modifying PDF files
OCaml C Other
Failed to load latest commit information.
examples Flags
utop Fixed up utop makefile
Changes more
LICENSE Spelling
META Fixed version number in META
Makefile Better cleaning
OCamlMakefile Working on providing a Utop top level Warning to pick a tag when downloading from Github
flatestubs.c For some platforms, need include <stdint.h>
introduction_to_camlpdf.pdf Removed pdfsqueeze
introduction_to_camlpdf.tex Removed pdfsqueeze
logo.pdf Removed pdfsqueeze
miniz.c Initial import
mkinstall Added script to make & install for debug use Fixed bytes_of_input
pdf.mli Made Pdf.ToGet opaque in preparation for decryption-on-demand Tidying
pdfafm.mli Commenting for release Began support for reading header of AFM files
pdfafmdata.mli Initial import Tidying
pdfannot.mli Initial import Initial import
pdfcff.mli Initial import Tidying
pdfcodec.mli Compressing strings for inclusion in binaries Shamix now cached
pdfcrypt.mli Recrypt finished Tidying
pdfcryptprimitives.mli Initial import
pdfdate.mli Initial import Tidying
pdfdest.mli Initial import
pdfflate.mli Commenting for release Initial import
pdffun.mli Initial import Reformatting
pdfgenlex.mli Initial import Initial import
pdfglyphlist.mli Initial import Initial import
pdfgraphics.mli Initial import Fixes based on new warnings in OCaml 4
pdfimage.mli Initial import Removed printf
pdfio.mli Faster 'getstream' Initial import
pdfjpeg.mli Initial import Initial import
pdfmarks.mli Initial import Pdfmerge rotations gone
pdfmerge.mli Pdfmerge rotations gone Initial import
pdfocg.mli Initial import Made un-understood malformed page content a proper error
pdfops.mli Initial import Typo in error message
pdfpage.mli Excised linearizated writing. Much rejoicing. Tidying
pdfpagelabels.mli Bug fixes to page label representation Initial import
pdfpaper.mli Initial import Made Pdf.ToGet opaque in preparation for decryption-on-demand
pdfread.mli More -revision support Initial import
pdfshapes.mli Initial import
pdfspace.mli Initial import To allow better standard font descriptions
pdfstandard14.mli Spelling corrections Made Pdf.ToGet opaque in preparation for decryption-on-demand
pdftext.mli Initial import Initial import
pdftransform.mli Initial import Initial import
pdftruetype.mli Initial import Initial import
pdftype0.mli Initial import Initial import
pdftype1.mli Initial import Fixes based on new warnings in OCaml 4
pdfunits.mli Initial import Reformatting
pdfutil.mli Added split6 more
pdfwrite.mli Comments for release
rijndael-alg-fst.c Beginning to use C implementation of AES
sha2.c Added beginnings of C SHA support
sha2.h Added beginnings of C SHA support
stubs-aes.c Beginning to use C implementation of AES
stubs-sha2.c SHA now provided by C primitives for speed


CamlPDF is an OCaml library for reading, writing and modifying PDF files. It is the basis of the commercial "CPDF" command line tool, which is available at


Copyright Coherent Graphics Ltd 2007 - 2013. Released under the LGPL with special linking exception. See "LICENCE" for details.

To Build

If downloading from Github, obtain the correct source. This means choosing the tag for a particaular version, such as "v2.1.1". The head of the master branch is unstable.

  1. Run "make". This will build camlpdf.a, camlpdf.cma, camlpdf.cmxa and the documentation (in doc/camlpdf/html).

  2. If your environment has "ocamlfind", "make install" will install the library. Otherwise, use the built outputs as you will.


The API documentation, which is built by the makefile in doc/camlpdf/html, can also be accessed online at

The file introduction-to-camlpdf.pdf will help the beginner.

Some level of knowledge of the PDF file format itself, which is large, may be required. The standard texts are the author's book:

and the ISO standard for PDF:


The file miniz.c is a (very slightly modified) version of the miniz.c zlib implementation by Rich Geldreich, avalable here:

The files flatestubs.c, and pdfflate.mli are a slightly modified version of some parts of CamlZip by Xavier Leroy. The originals are available here:

OCamlMakefile was written by Markus Mottl. It is available here:

These works are also released under the LGPL with special linking exception, as described in LICENCE.

Something went wrong with that request. Please try again.