CPDF Manual
CPDF Manual
User Manual
Version 2.2 (March 2017)
2017
c Coherent Graphics Limited. All rights reserved. ISBN 978-0957671140
Adobe, Acrobat, Adobe PDF, Adobe Reader and PostScript are registered trademarks of Adobe
Systems Incorporated. Windows, Powerpoint and Excel are registered trademarks of Microsoft
Corporation.
Contents
1 Basic Usage 1
1.1 Input and Output Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Input Ranges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Working with Encrypted Documents . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 Standard Input and Standard Output . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Doing Several Things at Once with AND . . . . . . . . . . . . . . . . . . . . . . . 4
1.6 Units . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.7 Setting the Producer and Creator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.8 PDF Version Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.9 File IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.10 Linearization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.11 Object Streams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.12 Malformed Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.13 Error Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.14 Control Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.15 String Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.16 Text Encodings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.17 Font Embedding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Pages 15
3.1 Page Sizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 Scale Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.3 Shift Page Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Rotating Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Flipping Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.6 Boxes and Cropping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
iii
4 Encryption and Decryption 21
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2 Encrypting a Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3 Decrypting a Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5 Compression 23
5.1 Decompressing a Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.2 Compressing a Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Squeezing a Document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
6 Bookmarks 25
6.1 List Bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6.2 Remove Bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3 Add Bookmarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
7 Presentations 27
9 Multipage Facilities 37
9.1 Two-up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
9.2 Inserting Blank Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
10 Annotations 39
10.1 List Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
10.2 Copy Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
10.3 Remove Annotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
12 File Attachments 49
12.1 Adding Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
12.2 Listing Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
12.3 Removing Attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
14 Fonts 53
14.1 Copying Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
14.2 Removing Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
14.3 Listing Missing Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
15 Miscellaneous 55
15.1 Draft Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
15.2 Blackening Text, Lines and Fills . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
15.3 Hairline Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
15.4 Garbage Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
15.5 Change PDF Version Number . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
15.6 Copy ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
15.7 Remove ID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
15.8 List Spot Colours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
15.9 Removing Dictionary Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
15.10Remove Clipping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
A Dates 59
Typographical Conventions
Command lines to be typed are shown in typewriter font in a box. For example:
When describing the general form of a command, rather than a particular example, square brack-
ets [] are used to enclose optional parts, and angled braces <> to enclose general descriptions
which may be substituted for particular instances. For example,
describes a command line which requires an operation and, optionally, a range. An exception is
that we use in.pdf and out.pdf instead of <input file> and <output file> to reduce
verbosity. Under Microsoft Windows, type cpdf.exe instead of cpdf.
vii
Chapter 1
Basic Usage
The Coherent PDF tools provide a wide range of facilities for modifying PDF files created
by other means. There is a single command-line program cpdf (cpdf.exe under Microsoft
Windows). The rest of this manual describes the options that may be given to this program.
and the simplest concrete example, assuming the existence of a file in.pdf is:
which copies in.pdf to out.pdf. The input and output may be the same file. Of course, we
should like to do more interesting things to the PDF file than that!
Files on the command line are distinguished from other input by their containing a period.
If an input file does not contain a period, it should be preceded by -i. For example:
1
2 Chapter 1. Basic Usage
cpdf -i in -o out.pdf
A whole directory of files may be added (where a command supports multiple files) by using
the -idir option:
The files in the directory myfiles are considered in alphabetical order. They must all be PDF
files. If the names of the files are numeric, leading zeroes will be required for the order to be
correct (e.g 001.pdf, 002.pdf etc).
extracts pages two, three, four and five from in.pdf, writing the result to out.pdf, assuming
that in.pdf contains at least five pages. Here are the rules for building input ranges:
• The words odd and even can be used in place of or at the end of a page range to restrict
to just the odd or even pages.
• The words portrait and landscape can be used in place of or at the end of a page
range to restrict to just those pages which are portrait or landscape. Note that the meaning
of “portrait” and “landscape” does not take account of any viewing rotation in place (use
-upright first, if required). A page with equal width and height is considered neither
portrait nor landscape.
• A tilde (˜) defines a page number counting from the end of the document rather than the
beginning. Page ˜1 is the last page, ˜2 the penultimate page etc.
Chapter 1. Basic Usage 3
For example:
To re-encrypt the file with its existing encryption upon writing, which is required if only the
user password was supplied, but allowed in any case, add the -recrypt option:
The password required (owner or user) depends upon the operation being performed. Separate
facilities are provided to decrypt and encrypt files (See Section 4).
together into a pipe, passing data from one to the next without the use of intermediate files. Use
-stdin to read from standard input, and -stdout to write to standard input, either to pipe
data between multiple programs, or multiple invocations of the same program. For example,
this sequence of commands (all typed on one line)
extracts the last five pages of in.pdf in the correct order, writing them to out.pdf. It does
this by reversing the input, taking the first five pages and then reversing the result.
To supply passwords for a file from -stdin, use -stdin-owner <password> and/or
-stdin-user <password>.
Using -stdout on the final command in the pipeline to output the PDF to screen is not
recommended, since PDF files often contain compressed sections which are not screen-readable.
Several cpdf operations write to standard output by default (for example, listing fonts). A
useful feature of the command line (not specific to cpdf) is the ability to redirect this output to
a file. This is achieved with the > operator:
Use the -info operation (See Section 11.2), redirecting the output to file.txt.
Merge in.pdf and in2.pdf together, add text to both pages, append in3.pdf and write to
out.pdf.
1.6 Units
When measurements are given to cpdf, they are in points (1 point = 1/72 inch). They may
optionally be followed by some letters to change the measurement. The following are supported:
For example, one may write 14mm or 21.6in. In addition, the following letters stand, in some
operations (-scale-page, -scale-to-fit, -scale-contents, -shift, -mediabox,
-crop) for various page dimensions:
PW Page width
PH Page height
PMINX Page minimum x coordinate
PMINY Page minimum y coordinate
PMAXX Page maximum x coordinate
PMAXY Page maximum y coordinate
CW Crop box width
CH Crop box height
CMINX Crop box minimum x coordinate
CMINY Crop box minimum y coordinate
CMAXX Crop box maximum x coordinate
CMAXY Crop box maximum y coordinate
For example, we may write PMINX PMINY to stand for the coordinate of the lower left corner
of the page.
Simple arithmetic may be performed using the words add, sub, mul and div to stand for
addition, subtraction, multiplication and division. For example, one may write 14in sub 30pt
or PMINX mul 2
Merge in.pdf and in2.pf, setting the producer to MyMerger and writing the output to out.pdf.
6 Chapter 1. Basic Usage
1.10 Linearization
Linearized PDF is a version of the PDF format in which the data is held in a special manner to
allow content to be fetched only when needed. This means viewing a multipage PDF over a
slow connection is more responsive. By default, cpdf does not linearize output files. To make it
do so, add the -l option to the command line, in addition to any other command being used.
For example:
This requires the existence of the external program cpdflin which is provided with commercial
versions of cpdf. This must be installed as described in the installation documentation provided
with your copy of cpdf. If you are unable to install cpdflin, you must use -cpdflin to let
cpdf know where to find it:
Chapter 1. Basic Usage 7
In extremis, you may place cpdflin and its resources in the current working directory,
though this is not recommended. For further help, refer to the installation instructions for your
copy of cpdf.
To keep the existing linearization status of a file (produce linearized output if the input is
linearized and the reverse), use -keep-l instead of -l.
To create new object streams if none exist, or augment the existing ones, use -create-objstm:
Write the file in.pdf to out.pdf, preserving any existing object streams, and creating any new ones
for new objects which have been added.
Write the file in.pdf to out.pdf with wholly new object streams.
Files written with object streams will be set to PDF 1.5 or higher, unless -keep-version is
used (see above).
Sometimes files can be technically well-formed but use inefficient PDF constructs. If you are sure
the input files you are using are impeccably formed, the -fast option added to the command
line (or, if using AND, to each section of the command line). This will use certain shortcuts which
speed up processing, but would fail on badly-produced files.
The -fast option may be used with:
Chapter 3
-rotate-contents -upright -vflip -hflip
-shift -scale -scale-to-fit -scale-contents
Chapter 8
-add-text
-stamp-on -stamp-under -combine-pages
Some operating systems have a limit on the length of a command line. To circumvent this, or
simply for reasons of flexibility, a control file may be specified from which arguments are drawn.
This file does not support the full syntax of the command line. Commands are separated by
whitespace, quotation marks may be used if an argument contains a space, and the sequence \"
may be used to introduce a genuine quotation mark in such an argument.
Several -control arguments may be specified, and may be mixed in with conventional
command-line arguments. The commands in each control file are considered in the order in
which they are given, after all conventional arguments have been processed. It is recommended
Chapter 1. Basic Usage 9
to use -args in all new applications. However, -control will be supported for legacy
applications.
To avoid interference between -control and AND, a new mechanism has been added.
Using -args in place of -control will perform direct textual substitution of the file into the
command line, prior to any other processing.
It follows that backslashes intended to be taken literally must themselves be escaped (i.e. written
\\).
-info
-list-bookmarks
-set-author et al.
-list-annotations
-utf8
-stripped
-raw
Add -utf8 to use Unicode UTF8, -stripped to convert to 7 bit ASCII by dropping any high
characters, or -raw to perform no processing. The default is -stripped.
10 Chapter 1. Basic Usage
2.1 Merging
The -merge operation allow the merging of several files into one. Ranges can be used to
select only a subset of pages from each input file in the output. The output file consists of the
concatenation of all the input pages in the order specified on the command line. Actually, the
-merge can be omitted, since this is the default operation of cpdf.
Take page one of a.pdf and all but the first page of b.pdf, merge them and produce out.pdf.
11
12 Chapter 2. Merging and Splitting
2.2 Splitting
The -split operation splits a PDF file into a number of parts which are written to file, their
names being generated from a format. The optional -chunk option allows the number of pages
written to each output file to be set.
Split the even pages of a.pdf to the files out001.pdf, out002.pdf etc. with at most ten pages in
each file. The directory (folder) dir must exist.
If the output format does not provide enough numbers for the files generated, the result is
unspecified. The following format operators may be used:
%, %%, %%% etc. Sequence number padded to the number of percent signs
@F Original filename without extension
@N Sequence number without padding zeroes
@S Start page of this chunk
@E End page of this chunk
@B Bookmark name at this page
Now, there may be many bookmarks on a single page (for instance, if paragraphs are book-
marked or there are two subsections on one page). The splits calculated by -split-bookmarks
ensure that each page appears in only one of the output files. It is possible to use the @ operators
above, including operator @B which expands to the text of the bookmark:
Split a.pdf on bookmark boundaries, using the bookmark text as the filename.
Chapter 2. Merging and Splitting 13
The bookmark text used for a name is converted from unicode to 7 bit ASCII, and the following
characters are removed, in addition to any character with ASCII code less than 32:
Pages
Any time when a page size is required, instead of writing, for instance "210mm 197mm" one
can instead write a4portrait. Here is a list of supported page sizes:
15
16 Chapter 3. Pages
usletterportrait usletterlandscape
uslegalportrait uslegallandscape
The -scale-to-fit operation scales each page in the range to fit a given page size, preserving
aspect ratio and centering the result.
The scale can optionally be set to a percentage of the available area, instead of filling it.
Scale a file’s pages to fit A4 portrait, scaling the page 90% of its possible size.
The -scale-contents operation scales the contents about the center of the crop box (or, if
absent, the media box), leaving the page dimensions (boxes) unchanged.
To scale about a point other than the center, one can use the positioning commands described in
Section 8.2.4. For example:
Scale a file’s contents on all pages to 50% of its original dimensions about a point 20pts from its top
right corner.
Shift pages to the right by 50 points (for instance, to increase the binding margin).
Set the rotation of all the pages in the input file to ninety degrees clockwise.
The -rotateby operation changes the viewing rotation of all the given pages by the relative
value given.
Rotate all the pages in the input file by ninety degrees clockwise.
The -rotate-contents operation rotates the contents and dimensions of the page by the
given relative value.
18 Chapter 3. Pages
Rotate all the page contents in the input file by ninety degrees clockwise. Does not change the page
dimensions.
The four numbers are minimum x, minimum y, width, height. x coordinates increase to the
right, y coordinates increase upwards. PDF file can also optionally contain a crop box for each
page, defining to what extent the page is cropped before being displayed or printed. A crop box
can be set, changed and removed, without affecting the underlying media box. To set or change
the crop box use -crop. To remove any existing crop box, use -remove-crop.
Remove cropping.
Chapter 3. Pages 19
This operation copies the contents of one box (Media box, Crop box, Trim box etc.) to another. If
-mediabox-if-missing is added, the media box will be substituted when the ’from’ box is
not set for a given page. For example
copies the Trim Box of each page to the Crop Box of each page. The possible boxes are
/MediaBox, /CropBox, /BleedBox, /TrimBox, /ArtBox.
Chapter 4
4.1 Introduction
PDF files can be encrypted using various types of encryption and attaching various permissions
describing what someone can do with a particular document (for instance, printing it or
extracting content). There are two types of person:
The User can do to the document what is allowed in the permissions.
The Owner can do anything, including altering the permissions or removing encryption
entirely.
There are five kinds of encryption:
• 40-bit encryption (method 40bit) in Acrobat 3 (PDF 1.1) and above
• 128-bit encryption (method 128bit) in Acrobat 5 (PDF 1.4) and above
• 128-bit AES encryption (method AES) in Acrobat 7 (PDF 1.6) and above
• 256-bit AES encryption (method AES256) in Acrobat 9 (PDF 1.7) – this is deprecated – do
not use for new documents
• 256-bit AES encryption (method AES256ISO) in PDF 2.0
21
22 Chapter 4. Encryption and Decryption
In addition, 128-bit encryption (Acrobat 5 and above) and AES encryption supports these:
-no-forms Cannot edit form fields
-no-extract Cannot extract text or graphics
-no-assemble Cannot merge files etc.
-no-hq-print Cannot print high-quality
Add these flags to the command line to prevent each operation.
A blank user password is common. In this event, PDF viewers will typically not prompt for a
password for when opening the file or for operations allowable with the user password.
In addition, the usual method can be used to give the existing owner password, if the document
is already encrypted.
When using AES encryption, the option is available to refrain from encrypting the metadata.
Add -no-encrypt-metadata to the command line.
Compression
cpdf provides basic facilities for decompressing and compressing PDF streams.
If cpdf finds a compression type it can’t cope with, the stream is left compressed. When using
-decompress, object streams are not compressed.
cpdf compresses any streams which have no compression using the FlateDecode method, with
the exception of Metadata streams, which are left uncompressed.
23
24 Chapter 5. Compression
Adding -squeeze to the command line when using another operation will squeeze the file or
files upon output.
The -squeeze operation writes some information about the squeezing process to standard
output. The squeezing process involves several processes which losslessly attempt to reduce
the file size. It is slow, so should not be used without thought.
The -squeeze-log-to <filename> option writes the log to the given file instead of to
standard output.
Chapter 6
Bookmarks
PDF Bookmarks (properly called the document outline) represent a tree of references to parts of
the file, typically displayed at the side of the screen. The user can click on one to move to the
specified place. cpdf provides facilities to list, add, and remove bookmarks. The format used
by the list and add operations is the same, so you can feed the output of one into the other, for
instance to copy bookmarks.
25
26 Chapter 6. Bookmarks
If the page number is 0, it indicates that clicking on that entry doesn’t move to a page.
By default, cpdf converts unicode to ASCII text, dropping characters outside the ASCII
range. To prevent this, and return unicode UTF8 output, add the -utf8 option to the command.
To prevent any processing, use the -raw option.
adds the bookmarks to the input file, writing to out.pdf. An error will be given if the
bookmarks file is not in the correct form (in particular, the numbers in the first column which
specify the level must form a proper tree with no entry being more than one greater than the
last).
Chapter 7
Presentations
The PDF file format, starting at Version 1.1, provides for simple slide-show presentations in
the manner of Microsoft Powerpoint. These can be played in Acrobat and possibly other PDF
viewers, typically started by entering full-screen mode. The -presentation operation allows
such a presentation to be built from any PDF file.
The -trans option chooses the transition style. When a page range is used, it is the
transition from each page named which is altered. The following transition styles are available:
Split Two lines sweep across the screen, revealing the new page. By default the lines are
horizontal. Vertical lines are selected by using the -vertical option.
Blinds Multiple lines sweep across the screen, revealing the new page. By default the lines are
horizontal. Vertical lines are selected by using the -vertical option.
Box A rectangular box sweeps inward from the edges of the page. Use -outward to make it
sweep from the center to the edges.
Wipe A single line sweeps across the screen from one edge to the other in a direction specified
by the -direction option.
Dissolve The old page dissolves gradually to reveal the new one.
Glitter The same as Dissolve but the effect sweeps across the page in the direction specified by
the -direction option.
27
28 Chapter 7. Presentations
To remove a transition style currently applied to the selected pages, omit the -trans option.
The -effect-duration option specifies the length of time in seconds for the transition
itself. The default value is one second.
The -duration option specifies the maximum time in seconds that the page is displayed
before the presentation automatically advances. The default, in the absence of the -duration
option, is for no automatic advancement.
The -direction option (for Wipe and Glitter styles only) specifies the direction of the
effect. The following values are valid:
0 Left to right
90 Bottom to top (Wipe only)
The Split style, with vertical lines, and each slide staying ten seconds unless manually advanced.
The first page (being a title) does not move on automatically, and has no transition effect.
To use different options on different page ranges, run cpdf multiple times on the file using a
different page range each time.
Chapter 8
29
30 Chapter 8. Watermarks and Stamps
stamps the file logo.pdf onto the odd pages of in.pdf, writing to out.pdf. A watermark
should go underneath each page:
The position commands in Section 8.2.4 can be used to locate the stamp more precisely (they are
calculated relative to the crop box of the stamp). Or, preprocess the stamp with -shift first.
The -scale-stamp-to-fit option can be added to scale the stamp to fit the page before
applying it. The use of positioning commands together with -scale-stamp-to-fit is not
recommended.
The -combine-pages operation takes two PDF files and stamps each page of one over
each page of the other. The length of the output is the same as the length of the “under” file.
For instance:
Page attributes (such as the display rotation) are taken from the “under” file. For best results,
remove any rotation differences in the two files using -upright first.
The -relative-to-cropbox option takes the positioning command to be relative to the cro
box of each page rather than the media box.
The default is black 12pt Times New Roman text in the top left of each page. The text can be
placed underneath rather than over the page by adding the -underneath option.
Text previously added by cpdf may be removed by the -remove-text operation.
To specify that bates numbering begins at the first page of the range, use -bates-at-range
instead. This option must be specified after the range is specified. To pad the bates number
up to a given number of leading zeros, use -bates-pad-to in addition to either -bates or
-bates-at-range.
32 Chapter 8. Watermarks and Stamps
8.2.4 Position
The position of the text may be specified either in absolute terms:
No attempt is made to take account of the page rotation when interpreting the position, so
-prerotate must be added to the command line if the file contains pages with a non-zero
viewing rotation. This is equivalent to pre-processing the document with -upright.
The -relative-to-cropbox modifier can be added to the command line to make these
measurements relative to the crop box instead of the media box.
The default position is equivalent to -topleft 100.
The -midline option may be added to specify that the positioning commands above are
to be considered relative to the midline of the text, rather than its baseline. Similarly, the
-topline option may be used to specify that the position is taken relative to the top of the text.
Times-Roman
Times-Bold
Times-Italic
Times-BoldItalic
Helvetica
Helvetica-Bold
Helvetica-Oblique
Helvetica-BoldOblique
Courier
Courier-Bold
Courier-Oblique
Courier-BoldOblique
Symbol
ZapfDingbats
For example, page numbers in Times Italic can be achieved by:
8.2.6 Colors
The -color option takes an RGB color, where red, green and blue components range between
0 and 1. The following values are predefined:
Color R, G, B
white 1, 1, 1
black 0, 0, 0
red 1, 0, 0
green 0, 1, 0
blue 0, 0, 1
Partly-transparent text may be specified using the -opacity option. Wholly opaque is 1 and
wholly transparent is 0. For example:
The -midline option may be used to make these vertical positions relative to the midline of a
line of text rather than the baseline, as usual.
The -line-spacing option can be used to increase or decrease the line spacing, where a
spacing of 1 is the standard.
1 code (such as many accented characters) will be reproduced in the PDF. This does not mean,
however, that every special character can be reproduced. You must experiment.
For compatibility with previous versions of cpdf, special characters may be introduced
manually with a backslash followed by the three-digit octal code of the character in the PDF
WinAnsiEncoding Latin 1 Code. The full table is included in Appendix D of the Adobe
PDF Reference Manual, which is available at http://www.adobe.com/devnet/pdf/pdf_
reference.html.
For example, a German sharp s (ß) may be introduced by \337.
This can be used to blank out or highlight part of the document. The following positioning
options work as you would expect: -topleft, -top, -topright, -right, -bottomright,
-bottom, -bottomleft, -left, -center. When using the option -pos-left "x y", the
point (x, y) refers to the bottom-left of the rectangle. When using the option -pos-right
"x y", the point (x, y) refers to the bottom-right of the rectangle. When using the option
-pos-center "x y", the point (x, y) refers to the center of the rectangle. The options
-diagonal and -reverse-diagonal have no meaning.
Chapter 9
Multipage Facilities
9.1 Two-up
This facility puts multiple logical pages on a single physical page. The -twoup-stack opera-
tion puts two logical pages on each physical page, rotating them 90 degrees to do so. The new
mediabox is thus larger. The -twoup operation does the same, but scales the new sides down
so that the media box is unchanged.
Add a blank page before page 1 (i.e. at the beginning of the document.)
Add a blank page after pages 2, 16, 38, 84, 121 and 147 (for instance, to add a clean page between
chapters of a document.)
37
38 Chapter 9. Multipage Facilities
The dimensions of the padded page are derived from the boxes (media box, crop box etc.) of
the page after or before which the padding is to be applied.
The -pad-every n operation places a blank page after every n pages, excluding any last
one. For example. . .
Annotations
Copy annotations from the first ten pages of from.pdf onto the PDF file to.pdf, writing the result
to results.pdf.
39
40 Chapter 10. Annotations
41
42 Chapter 11. Document Information and Metadata
The first column gives the page number, the second the internal unique font name, the third
the type of font (Type1, TrueType etc), the fourth the PDF font name, the fifth the PDF font
encoding.
Keywords:
Creator: FrameMaker 7.2
Producer: Acrobat Distiller 7.0.5 (Windows)
Created: D:20061017081020Z
Modified: D:20061118211043-02’30’
XMP pdf:Producer: Adobe PDF library 7.77
XMP xmp:CreateDate: 2006-12-21T18:19:09+01:00
XMP xmp:CreatorTool: Adobe Illustrator CS2
XMP xmp:MetadataDate: 2006-12-21T18:19:09Z
XMP xmp:ModifyDate: 2006-12-21T18:19:09Z
XMP dc:title: AI6
The details of the format for creation and modification dates can be found in Appendix A.
By default, cpdf strips to ASCII, discarding character codes in excess of 127. In order to
preserve the original unicode, add the -utf8 option. To disable all postprocessing of the string,
add -raw.
The -page-info option prints the page label, media box and other boxes page-by-page to
standard output, for all pages in the current range.
Note that the format for boxes is minimum x, minimum y, maximum x, maximum y.
Here is a summary of the commands for setting entries in the document information dictio-
nary:
(The details of the format for creation and modification dates can be found in Appendix A.
Using the date "now" uses the time and date at which the command is executed. Note also that
-producer and -creator may be used to set the producer and/or the creator when writing
any file, separate from the operations described in this chapter.)
For example, to set the title, the full command line would be
The text string is considered to be in UTF8 format, unless the -raw option is added—in which
case, it is unprocessed, save for the replacement of any octal escape sequence such as \017,
which is replaced by a character of its value (here, 15).
For instance:
For instance:
For instance:
To have that page scaled to fit the window in the viewer, use -open-at-page-fit instead:
46 Chapter 11. Document Information and Metadata
11.5 Metadata
PDF files can contain a piece of arbitrary metadata, often in XMP format. This is typically stored
in an uncompressed stream, so that other applications can read it without having to decode the
whole PDF. To set the metadata:
DecimalArabic 1,2,3,4,5. . .
LowercaseRoman i,ii,iii,iv,v. . .
UppercaseRoman I,II,III,IV,V. . .
LowercaseLetters a,b,c,. . . ,z,aa,bb. . .
UppercaseLetters A,B,C,. . . ,Z,AA,BB. . .
NoLabelPrefixOnly No number, but a prefix will be used if defined.
We can use -label-prefix to add a textual prefix to each label. Consider a file with twenty
pages and no current page labels (a PDF reader will assume 1,2,3. . . if there are none). We will
add the following page labels:
i, ii, iii, iv, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, A-0, A-1, A-2, A-3, A-4, A-5
By default the labels begin at page number 1 for each range. To override this, we can use
-label-startval (we used 0 in the final command), where we want the numbers to begin at
zero rather than one.
Page labels may be removed altogether by using -remove-page-labels command. To
print the page labels from an existing file, use -print-page-labels. For example:
File Attachments
PDF supports adding attachments (files of any kind, including other PDFs) to an existing file.
The cpdf tool supports adding and removing document-level attachments — that is, ones which
are associated with the document as a whole rather than with an individual page, and also
page-level attachments, associated with a particular page.
attaches the Excel spreadsheet sheet.xls to the input file. If the file already has attachments,
the new file is added to their number. You can specify multiple files to be attached by using
-attach-file multiple times. They will be attached in the given order.
The -to-page option can be used to specify that the files will be attached to the given page,
rather than at the document level. The -to-page option may be specified at most once.
49
50 Chapter 12. File Attachments
The format is page number, image name, x pixels, y pixels, x resolution, y resolution. The resolutions
refer to the image’s effective resolution at point of use (taking account of scaling, rotation etc).
51
Chapter 14
Fonts
Text in this font can then be added by giving -font /GHLIGA+c128. Be aware that due to the
vagaries of PDF font handling concerning which characters are present in the source font, not
all characters may be available, or the encoding (mapping from input codes to glyphs) may be
non-obvious.
53
54 Chapter 14. Fonts
The format is
Miscellaneous
The -draft option removes bitmap (photographic) images from a file, so that it can be printed
with less ink. Optionally, the -boxes option can be added, filling the spaces left blank with a
crossed box denoting where the image was. This is not guaranteed to be fully visible in all cases
(the bitmap may be have been partially covered by vector objects or clipped in the original). For
example:
55
56 Chapter 15. Miscellaneous
Contrary to their names, all these operations can use another color, if specified with -color.
This does not alter any of the actual data in the file — just the supposed version number.
15.6 Copy ID
The -copy-id-from operation copies the ID from the given file to the input, writing to the
output.
If there is no ID in the source file, the existing ID is retained. You cannot use -recrypt with
-copy-id-from.
15.7 Remove ID
The -remove-id operation removes the ID from a document.
List the spot colors, one per line in in.pdf, writing to stdout.
Remove the entry for /One in every dictionary in.pdf, writing to out.pdf.
Dates
D:YYYYMMDDHHmmSSOHH’mm’
where:
• O is the relationship of local time to Universal Time (UT), denoted by ’+’, ’-’ or ’Z’;
• HH is the absolute value of the offset from UT in hours (00-23);
• mm is the absolute value of the offset from UT in minutes (00-59).
A contiguous prefix of the parts above can be used instead, for lower accuracy dates. For
example:
D:2014 (2014)
D:20140103 (3rd March 2014)
D:201401031854-08’00’ (3rd March 2014, 6:54PM, US Pacific Standard Time)
59
Index
annotations font, 33
copying, 39 fonts
listing, 39 listing, 42
removing, 40
attachments, 49 garbage collection, 56
adding, 49
listing, 49 hairline removal, 56
removing, 50
input files, 1
bates numbers, 31 input range, 2
blacken fills, 56
blacken lines, 56 linearization, 6
blacken text, 56
media box, 18
blank pages
merging, 11
inserting, 37
metadata, 41, 46
bookmarks, 25
adding, 26 outline text, 34
listing, 25 output files, 1
removing, 26 owner password, 3
color, 33
page
compressing, 23
labels, 47
control file, 8
layout, 44
copy ID, 57
mode, 45
crop pages, 18
numbers, 31
date, 30 range, 2
dates page labels, 47
defined, 59 page size, 15
decompressing, 23 password, 3
decryption, 3, 21 presentations, 27
document information, 41
range, 2
document outline, 25
remove ID, 57
draft, 55
removing text, 30
encryption, 21 reversing, 2
error handling, 8 rotate
contents, 18
flip pages, 18 pages, 17
61
62 Index
scale pages, 16
shift page contents, 17
splitting, 12
on bookmarks, 12
squeeze, 24
stamp text, 30
stamps, 29
standard input, 3
standard output, 3
text encodings, 9
time, 30
two-up, 37
units, 5
user password, 3
version number, 6, 57
watermarks, 29