Adding support for viewing layers with different content in PDFViewCtrl

Skip to first unread message


Jul 17, 2013, 5:10:16 PM7/17/13
Q:  One of our requirements is to be able to have multiple layers in the book/pdf that can be switched on and off. I know there is some functionality like that in PDF, but I wonder if this is supported with PDFTron (show / hide items, buttons, etc.)
We are developing Android/iOS mobile apps.

A:   There are couple of way you could add 'layers' functionality to your app:

a) You can use standard PDF layers (a.k.a Optional Content Groups or OCG, see!searchin/pdfnet-sdk/OCG).

This may be a good option is layers are static. This method also works very well for layers that are fairly complex (e.g. maps with street, names, and other overlays). Another advantage over b) is that this is just standard PDF, so layers will show/work in Acrobat Reader etc.
As a starting point you may want to take a look at PDFLayers sample (

The sample shows how to switch different layers ‘on’ and ‘off’ when rasterizing PDF pages via PDFDraw, however the same technique would work with PDF viewer. You can update OCG/Layer state with  PDFViewCtrl.SetOCGContext(ctx), then redraw the page with pdfviewctrl.Update). 
b) Another option is that you draw your own content (widgets) on top of PDFViewCtrl.
In this case you are essentially implementing custom annotations, so you can take a look at PDFViewCtrl 'Tools' source for inspiration and template code. You could use this technique to add items, buttons, etc. Another way is to add views directly to PDFViewCtrl (through addView()). Depending on what exactly do you want to achieve (keep the items in the same position while scrolling, etc), you would need to extend PDFViewCtrl to be able to override the gesture events, or use the Tool interface to get the events. The following are some relevant posts:
Reply all
Reply to author
0 new messages