Copy link to clipboard
Copied
Hello,
A. I would like to generate interactive pdf documents, having
* several combo boxes and, depending on user selection:
* show/hide some diagrams/maps
The pdf standard seems to support all that is needed for this:
form elements, optional content groups (OCGs), Layers and JavaScript to handle actions
=> What is the recommented way to "program" pdf documents? (I do not want to manully create them but need some automated workflow, where I can easily update the data etc. )
B. First I tried to use pymypdf but faced issues with enabling/showing OCGs:
https://github.com/pymupdf/PyMuPDF/discussions/3195
C. I also tried to use the node.js Services API (see code excample below). However, that API only seems to support convertion of *.docx, *.html content etc. instead of detailed ways to construct pdf
documents from scratch / from its "low level building blocks"?
If the service api supports what I am looking for, where can I find the documentation?
D. If the services api does not support this:
Is there an alternative to Services API that is thought for that purpose?
Example to use node.js services api to create some pdf document:
const PDFServicesSdk = require('@adobe/pdfservices-node-sdk');
const id = "your client id";
const secret = "your secret credential";
let outputFilePath = 'demo.pdf';
const credentials = PDFServicesSdk.Credentials
.servicePrincipalCredentialsBuilder()
.withClientId(id)
.withClientSecret(secret)
.build();
const executionContext = PDFServicesSdk.ExecutionContext.create(credentials);
const createPdfOperation = PDFServicesSdk.CreatePDF.Operation.createNew();
//demo.docx currently is an empty document; did not find an example on how to
//construct pdf documents with services api from scratch
const input = PDFServicesSdk.FileRef.createFromLocalFile('demo.docx');
createPdfOperation.setInput(input);
createPdfOperation.execute(executionContext)
//.then(result => {
// const createOcgParams = {
// name: 'MyOptionalContentGroup',
// visibilityPolicy: 'VISIBLE',
// members: [], // Add your desired members here
// };
// how to create form elements, ocgs, include javascript?
// return executionContext.createOCG(createOcgParams);
})
.then(result => result.saveAsFile(outputFilePath))
.catch(err => {
if(err instanceof PDFServicesSdk.Error.ServiceApiError
|| err instanceof PDFServicesSdk.Error.ServiceUsageError) {
console.log('Exception encountered while executing operation', err);
} else {
console.log('Exception encountered while executing operation', err);
}
});
1 Correct answer
At this time, the API does not support any form of PDF interactivity.
Copy link to clipboard
Copied
At this time, the API does not support any form of PDF interactivity.
Copy link to clipboard
Copied
Thank you for clarification

