Skip to content

PdfBuilder

This module can be used to manipulate PDF files.

Manatee v1.29

This module requires Manatee v1.29 or later.

Forms

You can extract forms from a PDF file using the readForm function.

js
var pdfb = Module.load("PdfBuilder", {version: "vX.Y.Z"});
var doc = pdfb.open("/Users/robot/Desktop/form.pdf");
var form = doc.readForm();
// form is a JSON object where the keys are the field names and the values are the field values.

To input values into a form use the writeForm function supplying it with an object where the keys are the names of the fields and the values are the values to be written.

js
// Assuming we have a form with a field called "name" and a field called "email"
var myInputs = {
    "name": "John Doe",
    "email": "john@doe.org"
};
doc.writeForm(myInputs);
// Now, save the document with the new values.
doc.saveAs("/Users/robot/Desktop/form-filled.pdf");

It is also possible to supply a font and font size to the writeForm function.

javascript
var myInputs = {
"name": { text: "John Doe", font: "Courier", fontSize: 12 },
"email": "john@doe.org"
};
doc.writeForm(myInputs);

Flatten a PDF

Flattening a PDF file is a way to remove all annotations and other content that is not needed for the final document. It also makes all forms non-editable.

javascript
doc.flatten();

Merge PDFs

Using the merge function you can merge multiple PDF files into one.

js
doc.merge("/Users/robot/Desktop/second.pdf").merge("/Users/robot/Desktop/third.pdf");

or to merge an array of pdfs using the mergeAll function;

js
doc.mergeAll([
    "/Users/robot/Desktop/second.pdf",
    "/Users/robot/Desktop/third.pdf",
    "/Users/robot/Desktop/fourth.pdf"
]);

Split PDFs

Split a PDF file into multiple pages using the split function.

js
var docs = doc.split();
// Now, docs contain each page of the original document.
// You can save each page to a separate PDF file.
docs[0].saveAs("/Users/robot/Desktop/page1.pdf");

Print

Print a PDF file using the print function.

js
// Print to the default printer and show a preview.
doc.print({preview: true});
Releases
v1.3.0
  • Manatee v1.29 compatibility and upgrade dependencies
v1.2.2
  • Fix issue with release script (again)
v1.2.1
  • Fix issue with release script
v1.2.0
  • Update IronPdf dependency to 2022.4
  • Add flatten method
v1.1.1
  • Add support for specifying font and fontsize in writeForm function.
  • Cleanup temp files.
v1.1.0
  • Add support for http(s) urls in load function.
v1.0.0
  • Initial release.