public class

Group

extends Object
java.lang.Object
   ↳ com.pdftron.pdf.ocg.Group

Class Overview

The OCG::Group object represents an optional-content group. This corresponds to a PDF OCG dictionary representing a collection of graphic objects that can be made visible or invisible (Section 4.10.1 'Optional Content Groups' in PDF Reference). Any graphic content of the PDF can be made optional, including page contents, XObjects, and annotations. The specific content objects in the group have an OC entry in the PDF as part of the surrounding marked content or in the XObject dictionary. The group itself is a named object that can be typically manipulated through a Layers panel in a PDF viewer.

In the simplest case, the group's ON-OFF state makes the associated content visible or hidden. The ON-OFF state of a group can be toggled for a particular context (OCG::Context), and a set of states is kept in a configuration (OCG::Config). The visibility can depend on more than one group in an optional-content membership dictionary (OCG::OCMD), and can also be affected by the context's draw mode (OCGContext::OCDrawMode).

A group has an Intent entry, broadly describing the intended use. A group's content is considered to be optional (that is, the group's state is considered in its visibility) if any intent in its list matches an intent of the context. The intent list of the context is usually set from the intent list of the document configuration.

A Usage dictionary entry provides more specific intended usage information than an intent entry. Possible key values are: CreatorInfo, Language, Export, Zoom, Print, View, User, PageElement. The usage value can act as a kind of metadata, describing the sort of things that belong to the group, such as text in French, fine detail on a map, or a watermark. The usage values can also be used by the AutoState mechanism to make decisions about what groups should be on and what groups should be off. The AutoState mechanism considers the usage information in the OCGs, the AS array of the configuration, and external factors; for example, the language the application is running in, the current zoom level on the page, or whether the page is being printed.

Summary

Public Constructors
Group(Obj ocg)
Creates a new optional-content group (OCG) object from an existing SDF/Cos object.
Public Methods
static Group __Create(long impl, Object ref)
static Group create(PDFDoc doc, String name)
Creates a new optional-content group (OCG) object in the document.
boolean getCurrentState(Context context)
Get the current state of the optional-content group
boolean getInitialState(Config config)
Get the initial state.
Obj getIntent()
Get the intent.
String getName()
Get optional-content group
Obj getSDFObj()
Get the SDFObj.
boolean hasUsage()
Determine whether Group is associated with a usage dictionary
boolean isLocked(Config config)
Determine if optional-content group is locked in the given configuration
boolean isValid()
Determine whether Group is valid
void setCurrentState(Context context, boolean state)
Set the current ON-OFF state of the optional-content group (OCG) object in a given context.
void setInitialState(Config config, boolean state)
Set the initial state (ON or OFF) of the optional-content group (OCG) object in a given configuration.
void setIntent(Obj intent)
Set the Intent entry in an optional-content group's SDF/Cos dictionary.
void setLocked(Config config, boolean locked)
Set the locked state of an OCG in a given configuration.
void setName(String name)
Set the name of this optional-content group (OCG).
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public Group (Obj ocg)

Creates a new optional-content group (OCG) object from an existing SDF/Cos object.

Parameters
ocg the ocg

Public Methods

public static Group __Create (long impl, Object ref)

public static Group create (PDFDoc doc, String name)

Creates a new optional-content group (OCG) object in the document.

Parameters
doc The document in which the new OCG will be created.
name The name of the optional-content group.
Returns
  • The newly created OCG::Group object.

public boolean getCurrentState (Context context)

Get the current state of the optional-content group

Parameters
context The context for which to get the group's state.
Returns
  • true if this OCG object is in the ON state in a given context, false otherwise.

public boolean getInitialState (Config config)

Get the initial state.

Note: If the configuration has a BaseState of Unchanged, and the OCG is not listed explicitly in its ON list or OFF list, then the initial state is taken from the OCG's current state in the document's default context.

Parameters
config The configuration for which to get the group's initial state.
Returns
  • The initial state (ON or OFF) of the optional-content group (OCG) object in a given configuration.

public Obj getIntent ()

Get the intent.

Returns
  • OCG intent. An intent is a name object (or an array of name objects) broadly describing the intended use, which can be either "View" or "Design". A group's content is considered to be optional (that is, the group's state is considered in its visibility) if any intent in its list matches an intent of the context. The intent list of the context is usually set from the intent list of the document configuration.

public String getName ()

Get optional-content group

Returns
  • the name of this optional-content group (OCG).

public Obj getSDFObj ()

Get the SDFObj.

Returns
  • Pointer to the underlying SDF/Cos object.

public boolean hasUsage ()

Determine whether Group is associated with a usage dictionary

Returns
  • true if this group is associated with a Usage dictionary, false otherwise.

public boolean isLocked (Config config)

Determine if optional-content group is locked in the given configuration

Parameters
config The OC configuration.
Returns
  • true if this OCG is locked in a given configuration, false otherwise. The on/off state of a locked OCG cannot be toggled by the user through the user interface.

public boolean isValid ()

Determine whether Group is valid

Returns
  • True if this is a valid (non-null) OCG, false otherwise.

public void setCurrentState (Context context, boolean state)

Set the current ON-OFF state of the optional-content group (OCG) object in a given context.

Parameters
context The context for which to set the group's state.
state The new state.

public void setInitialState (Config config, boolean state)

Set the initial state (ON or OFF) of the optional-content group (OCG) object in a given configuration.

Parameters
config The configuration for which to set the group's initial state.
state The new initial state, true if the state is ON, false if it is OFF.

public void setIntent (Obj intent)

Set the Intent entry in an optional-content group's SDF/Cos dictionary. For more information, see GetIntent().

Parameters
intent The new Intent entry value (a name object or an array of name objects).

public void setLocked (Config config, boolean locked)

Set the locked state of an OCG in a given configuration. The on/off state of a locked OCG cannot be toggled by the user through the user interface.

Parameters
config IN/OUT The optional-content configuration.
locked true if the OCG should be locked, false otherwise.

public void setName (String name)

Set the name of this optional-content group (OCG).

Parameters
name The new name.