Skip to content


Subversion checkout URL

You can clone with
Download ZIP
OCaml library for reading, writing and modifying PDF files
OCaml C Other
Branch: master
Failed to load latest commit information.
utop Fixed up utop makefile
Changes more
LICENSE Spelling
META Fixed version number in META
OCamlMakefile Working on providing a Utop top level
flatestubs.c uint_32
introduction_to_camlpdf.pdf Removed pdfsqueeze
introduction_to_camlpdf.tex Removed pdfsqueeze
logo.pdf Removed pdfsqueeze
mkinstall Added script to make & install for debug use Fixed bytes_of_input
pdf.mli Tidying
pdfafm.mli Commenting for release
pdfafmdata.mli Initial import Tidying
pdfannot.mli Initial import Initial import
pdfcff.mli Initial import Tidying
pdfcodec.mli Compressing strings for inclusion in binaries
pdfcryptprimitives.mli Initial import
pdfdate.mli Initial import Tidying
pdfdest.mli Initial import Fixes based on new warnings in OCaml 4
pdfflate.mli Commenting for release Initial import
pdffun.mli Initial import Reformatting
pdfgenlex.mli Initial import Initial import
pdfglyphlist.mli 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
pdfmarks.mli Initial import Pdfmerge rotations gone
pdfmerge.mli Pdfmerge rotations gone
pdfocg.mli Initial import
pdfops.mli Typo in error message
pdfpage.mli Excised linearizated writing. Much rejoicing.
pdfpagelabels.mli Bug fixes to page label representation
pdfpaper.mli Made Pdf.ToGet opaque in preparation for decryption-on-demand
pdfread.mli More -revision support
pdfshapes.mli Initial import
pdfspace.mli Initial import
pdfstandard14.mli Spelling corrections
pdftext.mli Initial import Initial import
pdftruetype.mli Initial import Initial import
pdftype0.mli Initial import Initial import
pdfunits.mli Initial import
pdfutil.mli Added split6 more
sha2.c Added beginnings of C SHA support
sha2.h Added beginnings of C SHA support
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.