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.
Quick start
First, run npm install pdffiller-aws-lambda --save
for your app.
Import the module using:
var pdfFiller = ; // ...
Examples
1.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.
2. 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
{
"last_name" : "",
"first_name" : "",
"date" : "",
"football" : "",
"baseball" : "",
"basketball" : "",
"hockey" : "",
"nascar" : ""
};
3. 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.
{
"last_name" : "John",
"first_name" : "Doe",
"date" : "Jan 1, 2013",
"football" : "Off",
"baseball" : "Yes",
"basketball" : "Off",
"hockey" : "Yes",
"nascar" : "Off"
};
4. 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
{
"last_name" : "John",
"first_name" : "Doe",
"date" : "Jan 1, 2013",
"football" : "Off",
"baseball" : "Yes",
"basketball" : "Off",
"hockey" : "Yes",
"nascar" : "Off"
};