How to Show Acrobat Layers on Multiple PDF Pages Using JavaScript
Question details
The user needs to correctly retrieve and control optional content groups (layers) across multiple pages of a PDF document using JavaScript.

- Product
- Adobe Acrobat / PDF
- Device & OS
- not provided
- Scenario
- Executing a JavaScript snippet to interact with multi-page PDF form layers, specifically using the getOCGs function.
- Observed behavior
- The getOCGs() method returns null or fails to target the correct layers when a specific page index is provided, preventing the script from controlling layer visibility.
Ensure you have access to the JavaScript console in your PDF editor and verify that your PDF document actually contains Optional Content Groups (layers) before testing the script.
Retrieve Document-Wide Layers and Iterate by Name
Modify the getOCGs function call to target the entire document rather than a specific page, and use layer names instead of fixed array indices for better reliability.
When getOCGs(0) is used, the script only attempts to retrieve the Optional Content Groups (layers) for the first page. If the layers are distributed across multiple pages or defined at the document level, this can cause the function to return null or miss the intended layers entirely.
Additionally, hardcoding layer array indices is an unreliable practice. The array order can shift if layers are added, deleted, or modified. Iterating through the array and matching the layers by name ensures your code remains robust even if the document structure changes.
Remove the page index from your script. Change 'var layers = this.getOCGs(0);' to 'var layers = this.getOCGs();' so the function retrieves layers for the entire file instead of just the first page.
Set up a standard 'for' loop in your JavaScript to iterate through the retrieved 'layers' array.
Inside the loop, use an 'if' statement to check the name property of each layer, for example: 'if (layers[i].name === "YourLayerName")'.
Once the specific layer is identified by its name, set its state property to true or false (e.g., 'layers[i].state = true;') to show or hide the layer across the PDF.

Manage PDF Layers Easily with WPS PDF
If you want to view, show, or hide PDF layers without writing or debugging complex JavaScript, WPS Office provides an intuitive user interface to manage Optional Content Groups directly.
- 1. Open your PDF in WPS Office: Launch WPS Office and open your multi-page PDF document containing the layers.
- 2. Access the Layers Panel: Navigate to the left-hand navigation pane and click on the 'Layers' icon to view all Optional Content Groups in the document.
- 3. Toggle Visibility Visually: Click the eye icon next to any layer name to instantly show or hide it across the entire document without writing scripts.

Frequently Asked Questions
Why does getOCGs return null in my PDF JavaScript?
This typically occurs if the PDF does not contain any Optional Content Groups (layers), or if you pass a specific page index (like getOCGs(0)) but the layers are actually defined on a different page or globally at the document level.
Can I control the visibility of a PDF layer on just one specific page?
Layers (OCGs) in PDFs are generally document-wide. While their content might only be placed physically on specific pages, toggling the state of a layer to true or false will affect its visibility everywhere that layer appears in the entire document.
Is it safe to reference PDF layers by their array index number?
No, it is highly recommended to loop through the layer array and identify layers by their exact name property. Relying on fixed array index numbers can break your script if the layer order is modified in the future.




