Foxit PDF SDK
com.foxit.sdk.pdf.LayerNode Class Reference
Inheritance diagram for com.foxit.sdk.pdf.LayerNode:
com.foxit.sdk.common.Base

Public Member Functions

 LayerNode (LayerNode other)
 Constructor, with another layer node object.
More...
 
LayerNode addChild (int index, String name, boolean has_Layer) throws com.foxit.sdk.PDFException
 Add a new layer node as a child for current layer node.
More...
 
boolean addGraphicsObject (PDFPage page, GraphicsObject graphicsobject) throws com.foxit.sdk.PDFException
 Add a graphics object to current layer node.
More...
 
synchronized void delete ()
 Clean up related resources immediately. More...
 
LayerNode getChild (int index) throws com.foxit.sdk.PDFException
 Get a child node.
More...
 
int getChildrenCount () throws com.foxit.sdk.PDFException
 Get the count of children nodes.
More...
 
PDFDictionary getDict () throws com.foxit.sdk.PDFException
 Get the PDF dictionary of current object.
More...
 
int getExportUsage () throws com.foxit.sdk.PDFException
 Get the state for exporting usage.
More...
 
GraphicsObjectArray getGraphicsObjects (PDFPage page) throws com.foxit.sdk.PDFException
 Get all graphics objects related to the layer which is associated with current layer node.
More...
 
String getName () throws com.foxit.sdk.PDFException
 Get the name of current layer node.
More...
 
LayerPrintData getPrintUsage () throws com.foxit.sdk.PDFException
 Get the data for printing usage.
More...
 
int getViewUsage () throws com.foxit.sdk.PDFException
 Get the state for viewing usage.
More...
 
LayerZoomData getZoomUsage () throws com.foxit.sdk.PDFException
 Get the data for zooming usage.
More...
 
boolean hasIntent (String intent) throws com.foxit.sdk.PDFException
 Check if current layer node has a specified intent.
More...
 
boolean hasLayer () throws com.foxit.sdk.PDFException
 Check if current layer node is associated with a layer.
More...
 
boolean isEmpty ()
 Check whether current object is empty or not.
More...
 
boolean isInPage (PDFPage page) throws com.foxit.sdk.PDFException
 Check if current layer node is in a specified PDF page.
More...
 
boolean isLocked () throws com.foxit.sdk.PDFException
 Check if current layer node is locked.
More...
 
boolean moveTo (LayerNode parent_layer_node, int index) throws com.foxit.sdk.PDFException
 Move current layer node to be one of the children of another layer node.
More...
 
boolean removeChild (int index) throws com.foxit.sdk.PDFException
 Remove a child node by index.
More...
 
boolean removeGraphicsObject (GraphicsObject graphics_object) throws com.foxit.sdk.PDFException
 Remove a graphics object from current layer node.
More...
 
boolean removeUsage (int usage_type) throws com.foxit.sdk.PDFException
 Remove a kind of usage property.
More...
 
boolean setDefaultVisible (boolean is_visible) throws com.foxit.sdk.PDFException
 Set default visibility.
More...
 
boolean setExportUsage (int state) throws com.foxit.sdk.PDFException
 Set state for exporting usage.
More...
 
boolean setName (String name) throws com.foxit.sdk.PDFException
 Set the name of current layer node.
More...
 
boolean setPrintUsage (LayerPrintData data) throws com.foxit.sdk.PDFException
 Set data for layer printing usage.
More...
 
boolean setViewUsage (int state) throws com.foxit.sdk.PDFException
 Set state for viewing usage.
More...
 
boolean setZoomUsage (LayerZoomData data) throws com.foxit.sdk.PDFException
 Set data for layer zooming usage.
More...
 

Detailed Description

A PDF layer (known as "Optional content group" in <PDF reference 1.7>) is a collection of graphics (known as com.foxit.sdk.pdf.graphics.GraphicsObject in Foxit PDF SDK) that can be made visible or invisible. These graphics belonging to the same layer can reside anywhere in the document: they need not be consecutive in drawing order, nor even belong to the same content stream.
In Foxit PDF SDK, a PDF layer is associated with a layer node and Foxit PDF SDK offers class and methods to get/set layer data via layer node. If user wants to retrieve a layer node, user must construct a layer tree object first and then call function LayerTree.getRootNode to get the root layer node of the whole layer tree. Here, "root layer node" is an abstract object. "root layer node" can only have some child layer nodes but no parent, or any data (such as name, intent and so on). And "root layer node" cannot be shown on the application UI since it has no data. So, for a root layer node, only functions LayerNode.getChildrenCount and LayerNode.getChild are useful.
This class offers functions to get/set layer data and the graphics belonging to it. For example:


See also
LayerTree

Constructor & Destructor Documentation

◆ LayerNode()

com.foxit.sdk.pdf.LayerNode.LayerNode ( LayerNode  other)

Constructor, with another layer node object.

Parameters
[in]otherAnother layer node object.

Member Function Documentation

◆ addChild()

LayerNode com.foxit.sdk.pdf.LayerNode.addChild ( int  index,
String  name,
boolean  has_Layer 
) throws com.foxit.sdk.PDFException

Add a new layer node as a child for current layer node.

Parameters
[in]indexChild index for the new child layer node. Valid range: from 0 to count. count means to be the last child of current layer node and is returned by function LayerNode.getChildrenCount for current layer node.
[in]nameName for the new layer node. It should not be an empty string.
[in]has_Layertrue means the new child layer node would be associated with a layer, and false means the new child layer node is not associated with a layer.
Returns
A layer node object that specifies the new child layer node.

◆ addGraphicsObject()

boolean com.foxit.sdk.pdf.LayerNode.addGraphicsObject ( PDFPage  page,
GraphicsObject  graphicsobject 
) throws com.foxit.sdk.PDFException

Add a graphics object to current layer node.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]pageA valid PDF page, to which the input graphics object belongs.
[in]graphicsobjectA graphics object to be added to current layer node.
Returns
true means success, while false means failure.

◆ delete()

synchronized void com.foxit.sdk.pdf.LayerNode.delete ( )

Clean up related resources immediately.

Returns
None.
Note
Once this function is called, current object cannot be used anymore.

Reimplemented from com.foxit.sdk.common.Base.

◆ getChild()

LayerNode com.foxit.sdk.pdf.LayerNode.getChild ( int  index) throws com.foxit.sdk.PDFException

Get a child node.

Parameters
[in]indexIndex of the child to be retrieved. Valid range: from 0 to (count-1). count is returned by function LayerNode.getChildrenCount .
Returns
A child layer node object.

◆ getChildrenCount()

int com.foxit.sdk.pdf.LayerNode.getChildrenCount ( ) throws com.foxit.sdk.PDFException

Get the count of children nodes.

Returns
The count of children nodes.

◆ getDict()

PDFDictionary com.foxit.sdk.pdf.LayerNode.getDict ( ) throws com.foxit.sdk.PDFException

Get the PDF dictionary of current object.

Note
Please refer to "Optional Content Groups" in <PDF Reference 1.7> P364 for more details.
Returns
The PDF dictionary. If LayerNode.hasLayer of current layer node returns false, this function will return null.

◆ getExportUsage()

int com.foxit.sdk.pdf.LayerNode.getExportUsage ( ) throws com.foxit.sdk.PDFException

Get the state for exporting usage.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Returns
Layer usage state. Please refer to values starting from com.foxit.sdk.pdf.LayerTree.e_StateON and this would be one of these values except com.foxit.sdk.pdf.LayerTree.e_StateUnchanged .

◆ getGraphicsObjects()

GraphicsObjectArray com.foxit.sdk.pdf.LayerNode.getGraphicsObjects ( PDFPage  page) throws com.foxit.sdk.PDFException

Get all graphics objects related to the layer which is associated with current layer node.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]pageA valid PDF page, to which the input graphics object belongs.
Returns
A graphics object array which contains related graphic objects.

◆ getName()

String com.foxit.sdk.pdf.LayerNode.getName ( ) throws com.foxit.sdk.PDFException

Get the name of current layer node.

Returns
Layer node name.

◆ getPrintUsage()

LayerPrintData com.foxit.sdk.pdf.LayerNode.getPrintUsage ( ) throws com.foxit.sdk.PDFException

Get the data for printing usage.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Returns
Data for layer printing usage.

◆ getViewUsage()

int com.foxit.sdk.pdf.LayerNode.getViewUsage ( ) throws com.foxit.sdk.PDFException

Get the state for viewing usage.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Returns
Layer usage state. Please refer to values starting from com.foxit.sdk.pdf.LayerTree.e_StateON and this would be one of these values except com.foxit.sdk.pdf.LayerTree.e_StateUnchanged .

◆ getZoomUsage()

LayerZoomData com.foxit.sdk.pdf.LayerNode.getZoomUsage ( ) throws com.foxit.sdk.PDFException

Get the data for zooming usage.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Returns
Data for layer zooming usage.

◆ hasIntent()

boolean com.foxit.sdk.pdf.LayerNode.hasIntent ( String  intent) throws com.foxit.sdk.PDFException

Check if current layer node has a specified intent.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .
Specially, when this function with input parameter "View" returns false, that means the layer related to current layer node will always be visible, and will not be affected by the changing in visibility.

Parameters
[in]intentIntent name to be checked. It should not be an empty string. Pre-defined intent names are "View" and "Design".
Returns
true means current layer node has the specified intent, while false means current layer node does not the specified intent.

◆ hasLayer()

boolean com.foxit.sdk.pdf.LayerNode.hasLayer ( ) throws com.foxit.sdk.PDFException

Check if current layer node is associated with a layer.

Returns
true means current layer node is associated with a layer, while false means current layer node is not associated with a layer.

◆ isEmpty()

boolean com.foxit.sdk.pdf.LayerNode.isEmpty ( )

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
true means current object is empty, while false means not.

◆ isInPage()

boolean com.foxit.sdk.pdf.LayerNode.isInPage ( PDFPage  page) throws com.foxit.sdk.PDFException

Check if current layer node is in a specified PDF page.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]pageA valid PDF page.
Returns
true means current layer node is in the specified PDF page, while false means current layer node is not in the specified PDF page.

◆ isLocked()

boolean com.foxit.sdk.pdf.LayerNode.isLocked ( ) throws com.foxit.sdk.PDFException

Check if current layer node is locked.

Returns
true means current layer node is locked, while false means current layer node is not locked.

◆ moveTo()

boolean com.foxit.sdk.pdf.LayerNode.moveTo ( LayerNode  parent_layer_node,
int  index 
) throws com.foxit.sdk.PDFException

Move current layer node to be one of the children of another layer node.

Parameters
[in]parent_layer_nodeThe destination layer node. It should not be current layer node itself or any descendant of current layer node. Current layer node will be moved to be one of the children of the destination layer node.
[in]indexChild index which specifies where current layer node will be moved as a child of destination layer node. Valid range: from 0 to count. count means to be the last child of destination layer node and is returned by function LayerNode.getChildrenCount for parameter parent_layer_node.
Returns
true means success, while false means failure.

◆ removeChild()

boolean com.foxit.sdk.pdf.LayerNode.removeChild ( int  index) throws com.foxit.sdk.PDFException

Remove a child node by index.

Parameters
[in]indexIndex of the child node to be removed. Valid range: from 0 to (count-1). count is returned by function LayerNode.getChildrenCount .
Returns
true means success, while false means failure.

◆ removeGraphicsObject()

boolean com.foxit.sdk.pdf.LayerNode.removeGraphicsObject ( GraphicsObject  graphics_object) throws com.foxit.sdk.PDFException

Remove a graphics object from current layer node.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .
If the input graphics object does not belong to current layer node, this function will return true directly.

Parameters
[in]graphics_objectA graphics object to be removed from current layer node.
Returns
true means success, while false means failure.

◆ removeUsage()

boolean com.foxit.sdk.pdf.LayerNode.removeUsage ( int  usage_type) throws com.foxit.sdk.PDFException

Remove a kind of usage property.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .
If current layer node does not have the specified usage or does not have any usage, this function will return true.

Parameters
[in]usage_typeLayer usage type to be removed. Please refer to values starting from com.foxit.sdk.pdf.LayerContext.e_UsageView and this should be one of these values.
Returns
true means success, while false means failure.

◆ setDefaultVisible()

boolean com.foxit.sdk.pdf.LayerNode.setDefaultVisible ( boolean  is_visible) throws com.foxit.sdk.PDFException

Set default visibility.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]is_visibletrue means visible, and false means invisible.
Returns
true means success, while false means failure.

◆ setExportUsage()

boolean com.foxit.sdk.pdf.LayerNode.setExportUsage ( int  state) throws com.foxit.sdk.PDFException

Set state for exporting usage.

If user wants the new state to have effect on rendering result, please construct a new layer context object after this function succeeds, and then use the new layer context object to Renderer to do rendering.
This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]stateLayer usage state. It should be one of following values:
Returns
true means success, while false means failure.

◆ setName()

boolean com.foxit.sdk.pdf.LayerNode.setName ( String  name) throws com.foxit.sdk.PDFException

Set the name of current layer node.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]nameNew layer node name. It should not be an empty string.
Returns
true means success, while false means failure.

◆ setPrintUsage()

boolean com.foxit.sdk.pdf.LayerNode.setPrintUsage ( LayerPrintData  data) throws com.foxit.sdk.PDFException

Set data for layer printing usage.

If user wants the new state to have effect on rendering result, please construct a new layer context object after this function succeeds, and then use the new layer context object to Renderer to do rendering.
This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]dataNew data for layer printing usage. The value of print state of input data should be one of following values:
Returns
true means success, while false means failure.

◆ setViewUsage()

boolean com.foxit.sdk.pdf.LayerNode.setViewUsage ( int  state) throws com.foxit.sdk.PDFException

Set state for viewing usage.

If user wants the new state to have effect on rendering result, please construct a new layer context object after this function succeeds, and then use the new layer context object to Renderer to do rendering.
This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]stateLayer usage state. It should be one of following values:
Returns
true means success, while false means failure.

◆ setZoomUsage()

boolean com.foxit.sdk.pdf.LayerNode.setZoomUsage ( LayerZoomData  data) throws com.foxit.sdk.PDFException

Set data for layer zooming usage.

This function can only be used when function LayerNode.hasLayer returns true. If current layer node does not have layer, this function will throw exception com.foxit.sdk.common.Constants.e_ErrUnsupported .

Parameters
[in]dataNew data for layer zooming usage.
Returns
true means success, while false means failure.