Quickstart Examples

A sampling of just a few of the facilities provided by the Coherent PDF Command Line Tools.

Basic Usage

cpdf in.pdf 1-3,6 -o out.pdf

Read in.pdf, select pages 1, 2, 3 and 6, and write those pages to out.pdf.

cpdf in.pdf even -o out.pdf

Select the even pages (2, 4, 6...) from in.pdf and write those pages to out.pdf.

cpdf -merge in.pdf in2.pdf AND -add-text "Copyright 2021"
-o out.pdf

Using AND to perform several operations in order, here merging two files together and adding a copyright stamp to every page.

cpdf -args control.txt

Read control.txt and use its contents as the command line arguments for cpdf.

Merging and Splitting

cpdf -merge in.pdf in2.pdf -o out.pdf

Merge in.pdf and in2.pdf into one document, writing to out.pdf.

cpdf -split in.pdf -o Chunk%%%.pdf -chunk 10

Split in.pdf into ten-page chunks, writing them to Chunk001.pdf, Chunk002.pdf etc.

cpdf -split-bookmarks 0 in.pdf -o @N.pdf

Split in.pdf on bookmark boundaries, writing each to a file whose name is the bookmark label.

Pages

cpdf -scale-page "2 2" in.pdf -o out.pdf

Scale both the dimensions and contents of in.pdf by a factor of two in x and y directions.

cpdf -scale-to-fit usletterportrait in.pdf -o out.pdf

Scale the pages in in.pdf to fit the US Letter page size, writing to out.pdf

cpdf -shift "26pt 18mm" in.pdf -o out.pdf

Shift the contents of the page by 26 pts in the x direction, and 18 millimetres in the y direction, writing to out.pdf

cpdf -rotate-contents 90 in.pdf -o out.pdf

Rotate the contents of the pages in in.pdf by ninety degrees and write to out.pdf.

cpdf -crop "0 0 600pt 400pt" in.pdf -o out.pdf

Crop the pages in in.pdf to a 600 pts by 400 pts rectangle.

Encryption and Decryption

cpdf -encrypt 128bit fred joe in.pdf -o out.pdf

Encrypt in.pdf using 128bit PDF encryption using the owner password fred and the user password joe and writing the encrypted file to out.pdf

cpdf -decrypt in.pdf owner=fred -o out.pdf

Decrypt in.pdf using the owner password, writing to out.pdf.

Compression

cpdf -compress in.pdf -o out.pdf

Compress the data streams in in.pdf, writing the result to out.pdf.

cpdf -decompress in.pdf -o out.pdf

Decompress the data streams in in.pdf, writing to out.pdf.

cpdf -squeeze in.pdf -o out.pdf

Squeeze in.pdf, writing to out.pdf. Squeezing rearranges the structure of the PDF file to save space.

Bookmarks

cpdf -list-bookmarks in.pdf

List the bookmarks in in.pdf.

cpdf -add-bookmarks bookmarks.txt in.pdf -o out.pdf

Add bookmarks in the same form from a prepared file bookmarks.txt to in.pdf, writing to out.pdf.

Presentations

cpdf -presentation in.pdf 2-end -trans Split -duration 10
-o out.pdf

Use the Split style to build a presentation from the PDF in.pdf, each slide staying 10 seconds on screen unless manually advanced. The first page, being a title does not move on automatically, and has no transition effect.

Logos, Watermarks and Stamps

cpdf -stamp-on watermark.pdf in.pdf -o out.pdf

Stamp the file watermark.pdf on to each page of in.pdf, writing the result to out.pdf.

cpdf -topleft 10 -font Courier
-add-text "Page %Page\nDate %d-%m-%Y" in.pdf -o out.pdf

Add a page number and date to all the pages in in.pdf using the Courier font, writing to out.pdf.

Multipage Facilities

cpdf -twoup-stack in.pdf -o out.pdf

Two up impose the file in.pdf, writing to out.pdf.

cpdf -pad-after in.pdf 1,3,4 -o out.pdf

Add extra blank pages after pages one, three and four of a document.

Annotations

cpdf -list-annotations in.pdf

List the annotations in a file in.pdf to standard output.

cpdf -copy-annotations from.pdf in.pdf -o out.pdf

Copy the annotations from from.pdf to in.pdf, writing to out.pdf.

Document Information and Metadata

cpdf -set-title "The New Title" in.pdf -o out.pdf

Set the document title of in.pdf. writing to out.pdf.

cpdf -hide-toolbar true in.pdf -o out.pdf

Set the document in.pdf to open with the PDF Viewer’s toolbar hidden, writing to out.pdf.

cpdf -set-metadata metadata.xml in.pdf -o out.pdf

Set the metadata in a PDF in.pdf to the contents of the file metadata.xml, and write the output to out.pdf.

cpdf -set-page-layout TwoColumnRight in.pdf -o out.pdf

Set the document in.pdf to open in PDF Viewer showing two columns of pages, starting on the right, putting the result in out.pdf.

cpdf -set-page-mode FullScreen in.pdf -o out.pdf

Set the document in.pdf to open in PDF Viewer in full screen mode, putting the result in out.pdf.

File Attachments

cpdf -attach-file sheet.xls in.pdf -o out.pdf

Attach the file sheet.xls to in.pdf, writing to out.pdf.

cpdf -remove-files in.pdf -o out.pdf

Remove any attachments from in.pdf, writing to out.pdf.

Working with Images

cpdf -image-resolution 600 in.pdf

Identify and list any image used at less than 600dpi.

cpdf -extract-images in.pdf -im /usr/bin/magick -o output/%%%

Extract images from in.pdf to directory output (with the help of imagemagick).

Fonts

cpdf -list-fonts in.pdf

List the fonts in use, and what pages they are used on.

cpdf -gs /usr/bin/gs -embed-missing-fonts in.pdf -o out.pdf

Embed missing fonts (with the help of Ghostscript).

PDF and JSON

cpdf in.pdf -output-json -output-json-parse-content-streams
-o out.json

Write the PDF in JSON format to the given file, parsing its content streams into individual JSON objects too.

Optional Content Groups

cpdf -ocg-list in.pdf

List the optional content groups by name.

cpdf -ocg-coalesce-on-name in.pdf -o out.pdf

Coalesce optional content groups after merging or stamping two files with OCGs with like names.

Miscellaneous

cpdf -blacktext in.pdf -o out.pdf

Blacken all the text in in.pdf, writing to out.pdf.

cpdf -thinlines 2pt in.pdf -o out.pdf

Make sure all lines in in.pdf are at least 2 pts wide, writing to out.pdf.