Xojo Developer Conference
25/27th April 2018 in Denver.
MBS Xojo Conference
6/7th September 2018 in Munich, Germany.

DynaPDF Manual - Page 146

Previous Page 145   Index   Next Page 147

Function Reference
Page 146 of 750
BeginLayer
Syntax:
LBOOL pdfBeginLayer(
const PPDF* IPDF, // Instance pointer
UI32 OCG)
// OCG or OCMD handle
The function opens a layer in the current open page or template. The layer must be closed with
EndLayer() when finish. The parameter OCG must be valid handle of an Optional Content Group
(OCG) or Optional Content Membership Dictionary (OCMD) (see CreateOCG() and CreateOCMD()
for further information). The OCG or OCMD controls the visibility of the contents that is included in
the layer.
BeginLayer() / EndLayer() calls connect normal page contents, such as text, images, and vector
graphics with a layer but no interactive objects like annotations or form fields. Annotations and
Form Fields can be added to a layer with AddObjectToLayer().
It is not required to draw the entire contents of a layer in one pass. The page contents can be drawn
as usual and delimited into BeginLayer() / EndLayer() calls as necessary. Only contents that is
delimited into BeginLayer() / EndLayer() calls becomes part of a layer.
Layers can be nested by calling BeginLayer() more than one time with different OCGs or OCMDs.
The visibility of an inner layer depends then also on the visibility of the out ones (see example
below). If an outer layer is invisible then all inner layers are invisible too, regardless of the visibility
settings of the inner layers.
Remarks:
A layer is not part of the graphics state. Neither BeginLayer() nor EndLayer() change any parameter
of the graphics state. BeginLayer() must not be called within an open path.
Return values:
If the function succeeds the return value is 1. If the function fails the return value is 0.
Example (C++):
pdfCreateNewPDF(pdf, "test_layer.pdf");
// We use three layers in this example
SI32 oc1 = pdfCreateOCG(pdf, "Anything", true, true, oiView);
SI32 oc2 = pdfCreateOCG(pdf, "Text and Annotations", true, true, oiView);
SI32 oc3 = pdfCreateOCG(pdf, "Images", true, true, oiView);
pdfSetPageCoords(pdf, pcTopDown);
pdfAppend(pdf);
// The main layer controls the visibility of all three layers in this
// example.
pdfBeginLayer(pdf, oc1);
 

Previous topic: BeginContinueText

Next topic: BeginPageTemplate