Chapter 16
Optional Content Groups

cpdf -ocg-list in.pdf

cpdf -ocg-rename -ocg-rename-from <a> -ocg-rename-to <b> in.pdf -o out.pdf

cpdf -ocg-order-all in.pdf -o out.pdf

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

In a PDF file, optional content groups are used to group graphical elements together, so they may appear or not, depending on the preference of the user. They are similar in some ways to layers in graphics illustration programs.

cpdf -ocg-list in.pdf

List the optional content groups in the PDF, one per line, to standard output. UTF8.

cpdf -ocg-rename -ocg-rename-from <a> -ocg-rename-to <b> in.pdf -o out.pdf

Rename an optional content group.

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

Coalesce optional content groups. For example, if we merge or stamp two files both with an OCG called ”Layer 1”, we will have two different optional content groups. Running -ocg-coalesce-on-name will merge the two into a single optional content group.

cpdf -ocg-order-all in.pdf -o out.pdf

Ensure that every optional content group appears in the order list.

Java Interface

 
/* CHAPTER 16. Optional Content Groups */ 
 
/** Begins retrieving optional content group names. The serial number 
<code>0..n - 1</code> is returned. */ 
public native int startGetOCGList(Pdf pdf) throws CpdfError; 
 
/** Retrieves an entry in the optional content group list, given the serial 
number <code>0..n - 1</code>. */ 
public native String OCGListEntry(int serial) throws CpdfError; 
 
/** Ends retrieval of optional content group names. */ 
public native void endGetOCGList() throws CpdfError; 
 
/** Renames an optional content group. 
@param pdf PDF document 
@param f name to rename from 
@param t name to rename to */ 
public native void OCGRename(Pdf pdf, String f, String t) throws CpdfError; 
 
/** Ensures that every optional content group appears in the OCG order 
list. */ 
public native void OCGOrderAll(Pdf pdf) throws CpdfError; 
 
/** Coalesces optional content groups. For example, if we merge or stamp 
two files both with an OCG called "Layer 1", we will have two different 
optional content groups. This function will merge the two into a single 
optional content group. */ 
public native void OCGCoalesce(Pdf pdf) throws CpdfError;