Coherent PDF

Java API and Command Line Tools

User Manual
Version 2.5 (January 2022)

Coherent Graphics Ltd

For bug reports, feature requests and comments, email
contact@coherentgraphics.co.uk

2022 Coherent Graphics Limited. All rights reserved. ISBN 978-0957671140

Adobe, Acrobat, and Adobe PDF are registered trademarks of Adobe Systems Incorporated. Windows, Powerpoint and Excel are registered trademarks of Microsoft Corporation.

Quickstart Examples
 Chapter 1: Basic Usage
 Chapter 2: Merging and Splitting
 Chapter 3: Pages
 Chapter 4: Encryption and Decryption
 Chapter 5: Compression
 Chapter 6: Bookmarks
 Chapter 7: Presentations
 Chapter 8: Logos, Watermarks and Stamps
 Chapter 9: Multipage Facilities
 Chapter 10: Annotations
 Chapter 11: Document Information and Metadata
 Chapter 12: File Attachments
 Chapter 13: Working with Images
 Chapter 14: Fonts
 Chapter 15: PDF and JSON
 Chapter 16: Optional Content Groups
 Chapter 17: Creating New PDFs
 Chapter 18: Miscellaneous
Example Program in Java
Contents
Typographical Conventions
1 Basic Usage
 1.1 Documentation
 1.2 Input and Output Files
 1.3 Input Ranges
 1.4 Working with Encrypted Documents
 1.5 Standard Input and Standard Output
 1.6 Doing Several Things at Once with AND
 1.7 Units
 1.8 Setting the Producer and Creator
 1.9 PDF Version Numbers
 1.10 File IDs
 1.11 Linearization
 1.12 Object Streams
 1.13 Malformed Files
 1.14 Error Handling
 1.15 Control Files
 1.16 String Arguments
 1.17 Text Encodings
 1.18 Font Embedding
 Java Interface
2 Merging and Splitting
 2.1 Merging
 2.2 Splitting
 2.3 Splitting on Bookmarks
 2.4 Encrypting with Split and Split Bookmarks
 Java Interface
3 Pages
 3.1 Page Sizes
 3.2 Scale Pages
 3.3 Shift Page Contents
 3.4 Rotating Pages
 3.5 Flipping Pages
 3.6 Boxes and Cropping
 3.7 Showing Boxes and Printer’s Marks
 Java Interface
4 Encryption and Decryption
 4.1 Introduction
 4.2 Encrypting a Document
 4.3 Decrypting a Document
 Java Interface
5 Compression
 5.1 Decompressing a Document
 5.2 Compressing a Document
 5.3 Squeezing a Document
 Java Interface
6 Bookmarks
 6.1 List Bookmarks
 6.2 Remove Bookmarks
 6.3 Add Bookmarks
 6.4 Opening bookmarks
 6.5 Making a Table of Contents
 Java Interface
7 Presentations
 Java Interface
8 Watermarks and Stamps
 8.1 Add a Watermark or Logo
 8.2 Stamp Text, Dates and Times.
 8.3 Stamping Graphics
 8.4 Low-level facilities
 Java Interface
9 Multipage Facilities
 9.1 Inserting Blank Pages
 9.2 Imposition
 Java Interface
10 Annotations
 10.1 Listing Annotations
 10.2 Copying Annotations
 10.3 Removing Annotations
 Java Interface
11 Document Information and Metadata
 11.1 Reading Document Information
 11.2 Setting Document Information
 11.3 XMP Metadata
 11.4 Upon Opening a Document
 11.5 Page Labels
 Java Interface
12 File Attachments
 12.1 Adding Attachments
 12.2 Listing Attachments
 12.3 Removing Attachments
 12.4 Dumping Attachments to File
 Java Interface
13 Working with Images
 13.1 Extracting images
 13.2 Detecting Low-resolution Images
 13.3 Removing an Image
 Java Interface
14 Fonts
 14.1 Listing Fonts
 14.2 Listing characters in a font
 14.3 Copying Fonts
 14.4 Removing Fonts
 14.5 Missing Fonts
 Java Interface
15 PDF and JSON
 15.1 Converting PDF to JSON
 15.2 Converting JSON to PDF
 Java Interface
16 Optional Content Groups
 Java Interface
17 Creating New PDFs
 17.1 A new blank PDF
 17.2 Convert a text file to PDF
 Java Interface
18 Miscellaneous
 18.1 Draft Documents
 18.2 Blackening Text, Lines and Fills
 18.3 Hairline Removal
 18.4 Garbage Collection
 18.5 Change PDF Version Number
 18.6 Copy ID
 18.7 Remove ID
 18.8 List Spot Colours
 18.9 PDF Dictionary Entries
 18.10 Removing Clipping
 Java Interface
A Dates
 A.1 PDF Date Format
 A.2 XMP Metadata Date Format