PDF Filler (Node.js)
A node.js PDF form field data filler and FDF generator toolkit. This essentially is a wrapper around the PDF Toolkit library PDF ToolKit.
NOTE: pdffiller failed to keep data if it was already included on a form. I added some logic to retain this data if it exists and released pdffiller-keepfields as a substitute.
Quick start
npm install pdffiller-keepfields --save
Import the module using:
var pdfFiller = ; // ...
Examples
Fill PDF with existing FDF Data
var pdfFiller = ; var sourcePDF = "test/test.pdf";var destinationPDF = "test/test_complete.pdf";var data = "last_name" : "John" "first_name" : "Doe" "date" : "Jan 1, 2013" "football" : "Off" "baseball" : "Yes" "basketball" : "Off" "hockey" : "Yes" "nascar" : "Off"; pdfFiller;
This will take the test.pdf, fill the fields with the data values and create a complete filled in PDF (test_filled_in.pdf). Note that the resulting PDF will be read-only.
Alternatively,
var shouldFlatten = false; pdfFiller
Calling
fillFormWithFlatten()
with shouldFlatten = false
will leave any unmapped fields
still editable, as per the pdftk
command specification.
Generate FDF Template from PDF
var pdfFiller = ; var sourcePDF = "test/test.pdf"; // Override the default field name regex. Default: /FieldName: ([^\n]*)/var nameRegex = null; var FDF_data = pdfFiller;
This will print out this
;
Map form fields to PDF fields
var pdfFiller = ; var convMap = "lastName": "last_name" "firstName": "first_name" "Date": "date" "footballField": "football" "baseballField": "baseball" "bballField": "basketball" "hockeyField": "hockey" "nascarField": "nascar"; var fieldJson = "title" : "lastName" "fieldfieldType": "Text" "fieldValue": "John" "title" : "firstName" "fieldfieldType": "Text" "fieldValue": "Doe" "title" : "Date" "fieldType": "Text" "fieldValue": "Jan 1, 2013" "title" : "footballField" "fieldType": "Button" "fieldValue": false "title" : "baseballField" "fieldType": "Button" "fieldValue": true "title" : "bballField" "fieldType": "Button" "fieldValue": false "title" : "hockeyField" "fieldType": "Button" "fieldValue": true "title" : "nascarField" "fieldType": "Button" "fieldValue": false ; var mappedFields = pdfFiller;console;
This will print out the object below.
;
Convert fieldJson to FDF data
var pdfFiller = ; var fieldJson = "title" : "last_name" "fieldfieldType": "Text" "fieldValue": "Doe" "title" : "first_name" "fieldfieldType": "Text" "fieldValue": "John" "title" : "date" "fieldType": "Text" "fieldValue": "Jan 1, 2013" "title" : "football" "fieldType": "Button" "fieldValue": false "title" : "baseball" "fieldType": "Button" "fieldValue": true "title" : "basketball" "fieldType": "Button" "fieldValue": false "title" : "hockey" "fieldType": "Button" "fieldValue": true "title" : "nascar" "fieldType": "Button" "fieldValue": false ; var FDFData = pdfFiller;console
This will print out this
;