The CPDF PDF command line tool for editing PDF files. cpdf as an OCaml library
Go to file
2024-12-19 16:18:23 +00:00
compressor more 2023-04-13 16:56:32 +01:00
docsplits Ready for updated cpdfdocs.js 2024-05-10 14:20:36 +08:00
html_manual Fix up html manual to take account of tagpdf 2024-12-10 13:49:30 +00:00
manualimages docs 2024-09-23 16:32:05 +01:00
old Spelling 2024-09-04 13:22:21 +01:00
.gitignore
Changes Changes 2024-12-18 19:30:04 +00:00
cpdf.1 Version updates 2024-12-09 16:01:11 +00:00
cpdf.install Move .install file to root 2023-08-15 17:58:29 +01:00
cpdf.opam Version updates 2024-12-09 16:01:11 +00:00
cpdfaddtext.ml %Bookmark<n> finished 2024-11-11 18:49:11 +00:00
cpdfaddtext.mli First stab at %Bookmark<n> 2024-11-11 16:47:49 +00:00
cpdfannot.ml Fix link rewriting in -set-annotations 2023-09-19 13:43:21 +01:00
cpdfannot.mli more 2023-04-22 16:58:05 +01:00
cpdfattach.ml Modernize @B bookmark namer 2024-11-04 15:06:34 +00:00
cpdfattach.mli Modernize @B bookmark namer 2024-11-04 15:06:34 +00:00
cpdfbookmarks.ml @b 2024-11-04 16:29:43 +00:00
cpdfbookmarks.mli
cpdfchop.ml Finished -chop-v, -chop-h 2024-02-05 15:29:54 +00:00
cpdfchop.mli Docstring fixes for v2.7 2024-03-04 15:16:14 +00:00
cpdfcolours.ml more 2023-06-07 16:35:26 +01:00
cpdfcolours.mli Documentation for new v2.6 features 2023-07-27 12:05:18 +01:00
cpdfcommand.ml Note about Cpdfsqueeze.recompress 2024-12-19 13:38:24 +00:00
cpdfcommand.mli Clean up Cpdfcommand/Cpdfdrawcontrol mutual recursion 2023-10-04 15:07:29 +01:00
cpdfcommandrun.ml Return cpdf.top to working order 2022-01-11 19:13:46 +00:00
cpdfcomposition.ml Add piece info to composition 2024-11-05 11:51:47 +00:00
cpdfcomposition.mli Docstring fixes for v2.7 2024-03-04 15:16:14 +00:00
cpdfcoord.ml Update and modernize page characteristics 2024-11-05 14:59:02 +00:00
cpdfcoord.mli
cpdfcreate.ml Newly-created files get IDs by default 2023-05-09 15:02:59 +01:00
cpdfcreate.mli more 2022-01-13 16:35:03 +00:00
cpdfdebug.ml
cpdfdebug.mli
cpdfdraft.ml Use new CamlPDF option to avoid pointless compression 2023-12-16 20:18:06 +00:00
cpdfdraft.mli
cpdfdraw.ml First stab at %Bookmark<n> 2024-11-11 16:47:49 +00:00
cpdfdraw.mli Fix source + docs for v2.7.2 2024-10-23 15:26:14 +01:00
cpdfdrawcontrol.ml Rework autotagging 2024-09-27 12:40:36 +01:00
cpdfdrawcontrol.mli Rework, add elt_info 2024-09-26 15:22:22 +01:00
cpdfembed.ml harded against attempts to build empty truetype fonts 2024-05-08 10:48:10 +08:00
cpdfembed.mli Move Standard 14 substitute loading into Cpdfembed 2024-04-01 19:03:31 +01:00
cpdferror.ml First working roundtrip structure tree 2024-06-05 15:26:12 +01:00
cpdferror.mli
cpdfextracttext.ml
cpdfextracttext.mli Documentation for new v2.6 features 2023-07-27 12:05:18 +01:00
cpdffont.ml Extend copyfont to use chains 2024-11-21 16:28:54 +00:00
cpdffont.mli Documentation strings and typos 2024-07-19 18:30:57 +01:00
cpdfimage.ml Gate printing of errors in -process-images 2024-12-18 14:25:10 +00:00
cpdfimage.mli Plumbing for -jpeg-to-jpeg-scale, -jpeg-to-jpeg-dpi 2024-11-05 14:02:57 +00:00
cpdfimpose.ml q/Q/BT/ET by data structure 2023-05-09 14:30:30 +01:00
cpdfimpose.mli
cpdfjpeg2000.ml Silence no-return warning 2024-04-16 07:49:11 +08:00
cpdfjpeg2000.mli Skeleton for JPEG2000 support 2024-03-20 20:24:44 +00:00
cpdfjpeg.ml Allow Exit JPEGs 2023-11-14 14:42:39 +00:00
cpdfjpeg.mli Documentation for new v2.6 features 2023-07-27 12:05:18 +01:00
cpdfjson.ml Account for CamlPDF comment changes 2024-09-20 17:22:12 +01:00
cpdfjson.mli v2.6 documentation 2023-07-27 13:21:15 +01:00
cpdfmanual.pdf UA remediations 2024-12-19 16:18:23 +00:00
cpdfmanual.tex UA remediations 2024-12-19 16:18:23 +00:00
cpdfmetadata.ml Implement -cm -in -mm 2024-12-02 16:41:12 +00:00
cpdfmetadata.mli Scaffolding for -cm -in -mm 2024-12-02 16:29:34 +00:00
cpdfocg.ml
cpdfocg.mli
cpdfpad.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfpad.mli
cpdfpage.ml Implement -cm -in -mm 2024-12-02 16:41:12 +00:00
cpdfpage.mli Scaffolding for -cm -in -mm 2024-12-02 16:29:34 +00:00
cpdfpagelabels.ml
cpdfpagelabels.mli more 2022-01-13 16:18:54 +00:00
cpdfpagespec.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfpagespec.mli Fix source + docs for v2.7.2 2024-10-23 15:26:14 +01:00
cpdfpng.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfpng.mli Extend PNG loading to greyscale and 16bpp 2024-01-01 11:46:32 +00:00
cpdfposition.ml More positions 2023-04-07 15:31:21 +01:00
cpdfposition.mli More positions 2023-04-07 15:31:21 +01:00
cpdfpresent.ml
cpdfpresent.mli
cpdfprinttree.ml Add Jambon's tree printer 2024-06-27 13:36:05 +01:00
cpdfprinttree.mli Docstrings 2024-07-24 15:05:02 +01:00
cpdfremovetext.ml warning 39 2024-02-27 15:57:31 +00:00
cpdfremovetext.mli Documentation for new v2.6 features 2023-07-27 12:05:18 +01:00
cpdfshape.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfshape.mli Documentation for new v2.6 features 2023-07-27 12:05:18 +01:00
cpdfspot.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfspot.mli
cpdfsqueeze.ml Note about Cpdfsqueeze.recompress 2024-12-19 13:38:24 +00:00
cpdfsqueeze.mli Deprecate -squeeze-no-recompress 2023-06-21 15:38:32 +01:00
cpdfstrftime.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfstrftime.mli stderr unbuffered 2021-07-23 16:26:07 +01:00
cpdftexttopdf.ml Clean up chains 2024-10-23 13:44:31 +01:00
cpdftexttopdf.mli Scaffolding for struct trees in typesetter 2024-10-02 13:27:57 +01:00
cpdftoc.ml Dot leaders finished 2024-12-03 18:17:12 +00:00
cpdftoc.mli Scaffolding for dot leaders in TOC 2024-12-02 18:39:29 +00:00
cpdftruetype.ml Truetype cmap matterhorns 2024-06-21 17:27:40 +01:00
cpdftruetype.mli Truetype cmap matterhorns 2024-06-21 17:27:40 +01:00
cpdftweak.ml removal of old things 2023-04-12 19:37:30 +01:00
cpdftweak.mli Docstring fixes for v2.7 2024-03-04 15:16:14 +00:00
cpdftype.ml More structure tree work 2024-10-03 16:18:09 +01:00
cpdftype.mli Fix source + docs for v2.7.2 2024-10-23 15:26:14 +01:00
cpdfua.ml Clean up chains 2024-10-23 13:44:31 +01:00
cpdfua.mli Docstring 2024-12-13 16:19:23 +00:00
cpdfunicodedata.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfunicodedata.mli
cpdfunicodedata.source.ml Removal or commenting of unused code 2024-02-23 16:17:12 +00:00
cpdfxmlm.ml
cpdfxmlm.mli
cpdfxobject.ml
cpdfxobject.mli
cpdfyojson.ml Fix license, YoJson attribution 2024-08-02 18:11:37 +01:00
cpdfyojson.mli Fix license, YoJson attribution 2024-08-02 18:11:37 +01:00
fixcpdfmanual PDF manual accessibility fixes 2024-12-08 12:45:35 +00:00
hello.pdf Update 2024-10-28 12:32:14 +00:00
LICENSE.md Fix license, YoJson attribution 2024-08-02 18:11:37 +01:00
logo.pdf
Makefile Add subformat / title 2024-10-02 14:20:51 +01:00
META Version updates 2024-12-09 16:01:11 +00:00
mkinstall
OCamlMakefile more 2023-03-14 19:57:42 +00:00
README.md Version updates 2024-12-09 16:01:11 +00:00

Coherent PDF Command Line Tools

CPDF is distributed under the AGPL - see LICENSE.md. If you are unable to abide by the terms of the AGPL, you will need a commercial license.

For commercial licenses, email contact@coherentgraphics.co.uk or visit https://www.coherentpdf.com/

Copyright Coherent Graphics Ltd 2024.

This code builds two things:

a) The CPDF PDF command line tool for editing PDF files.

b) cpdf as an OCaml library, for which documentation is here:

https://coherentpdf.com/cpdf/

Prerequisites to build

The OCaml compiler

http://ocaml.org

The camlpdf library

http://github.com/johnwhitington/camlpdf

The ocamlfind library manager

http://projects.camlcity.org/projects/findlib.html

If you are using the OPAM package manager:

http://opam.ocamlpro.com

these can be installed by:

opam install camlpdf

To build

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

  1. Type make to make the cpdf executable and the library

  2. Type make install to install the OCaml cpdf library.

The cpdf executable should be manually placed somewhere suitable.

Alternatively, the library and command-line binary can be installed by

opam install cpdf

Documentation

The file cpdfmanual.pdf in this folder is the documentation for the command line tools. The documentation for the cpdf OCaml library is in doc/html/cpdf/ in this folder once the library has been built.

C API

A C interface to cpdf is available, in source and binary form:

https://github.com/johnwhitington/cpdflib-source

https://github.com/coherentgraphics/cpdflib-binary

Python API

A Python interface to cpdf is available:

https://pypi.org/project/pycpdflib

Java API

A Java interface to cpdf is available:

https://github.com/coherentgraphics/jcpdf

.NET API

A .NET interface to cpdf is available:

https://github.com/coherentgraphics/dotnet-libcpdf

JavaScript API

A JavaScript version of cpdf, for server and client side is available:

Distribution: https://www.npmjs.com/package/coherentpdf

Source: https://github.com/coherentgraphics/coherentpdf.js

Acknowledgments

The file cpdfxmlm.ml was written by Daniel Bünzli.

The file cpdfyojson.ml was written by Martin Jambon and others.

The error descriptions for -verify "PDF/UA-1(matterhorn)" come from the PDF Association, and are licensed under the Creative Commons Attribution 4.0 International license.

PDF/UA support in Cpdf was implemented under NLnet grant 2023-12-031.

Contact

contact@coherentgraphics.co.uk