From 6e05c9513a93f5c05ec623bccea53e18eedb089c Mon Sep 17 00:00:00 2001 From: Sorin-nightz Date: Mon, 1 Dec 2025 14:46:25 +0200 Subject: [PATCH 1/3] xfa forms --- README.md | 130 +++++++++ src/api/PDFDocument.ts | 318 +++++++++++++++++++++- src/api/PDFDocumentOptions.ts | 3 +- src/api/PDFJavaScriptAction.ts | 133 +++++++++ src/api/PDFPage.ts | 36 +++ src/api/form/PDFField.ts | 59 ++++ src/api/index.ts | 5 + tests/api/PDFDocument.spec.ts | 83 ++++++ tests/api/PDFDocumentXFA.spec.ts | 138 ++++++++++ tests/api/PDFJavaScriptAction.spec.ts | 291 ++++++++++++++++++++ tests/api/PDFPage.spec.ts | 100 +++++++ tests/api/form/PDFFieldJavaScript.spec.ts | 294 ++++++++++++++++++++ 12 files changed, 1581 insertions(+), 9 deletions(-) create mode 100644 src/api/PDFJavaScriptAction.ts create mode 100644 tests/api/PDFDocumentXFA.spec.ts create mode 100644 tests/api/PDFJavaScriptAction.spec.ts create mode 100644 tests/api/form/PDFFieldJavaScript.spec.ts diff --git a/README.md b/README.md index fcb97e0f5..94319736d 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,9 @@ Install with: `npm install @cantoo/pdf-lib` - [Create Form](#create-form) - [Fill Form](#fill-form) - [Flatten Form](#flatten-form) + - [Work with XFA Forms](#work-with-xfa-forms) + - [Extract XFA JavaScript](#extract-xfa-javascript) + - [Modify XFA JavaScript](#modify-xfa-javascript) - [Copy Pages](#copy-pages) - [Embed PNG and JPEG Images](#embed-png-and-jpeg-images) - [Embed PDF Pages](#embed-pdf-pages) @@ -104,6 +107,9 @@ Install with: `npm install @cantoo/pdf-lib` - Create forms - Fill forms - Flatten forms +- Preserve XFA forms +- Extract XFA JavaScript +- Modify XFA JavaScript - Add Pages - Insert Pages - Remove Pages @@ -732,6 +738,130 @@ const pdfBytes = await pdfDoc.save() // • Rendered in an