Introduction to pdf-fill-form
pdf-fill-form is a powerful Node.js library that allows you to programmatically fill PDF forms with ease. With its simple and intuitive API, you can quickly automate the process of filling out PDF forms, saving you time and effort.
Getting Started
To get started with pdf-fill-form, you need to install it using npm:
npm install pdf-fill-form
Basic API Usage
Here is a basic example to fill out a PDF form:
const pdfFillForm = require('pdf-fill-form');
const fs = require('fs');
const formData = {
'field1': 'John Doe',
'field2': 'john.doe@example.com',
// Add more fields as needed
};
pdfFillForm.write('path/to/template.pdf', formData, { "save": "pdf" })
.then(result => {
fs.writeFileSync('path/to/output.pdf', result);
})
.catch(error => {
console.error(error);
});
API Examples
Reading Form Fields
To read the form fields of an existing PDF:
pdfFillForm.read('path/to/template.pdf')
.then(result => {
console.log(result);
})
.catch(error => {
console.error(error);
});
Flattening Form Fields
To flatten form fields so that they are not editable:
pdfFillForm.write('path/to/template.pdf', formData, { "save": "flatten" })
.then(result => {
fs.writeFileSync('path/to/output.pdf', result);
})
.catch(error => {
console.error(error);
});
Managing Multiple Pages
To fill out forms with multiple pages:
const multiPageFormData = [
{
'field1': 'Page 1 - Field 1',
'field2': 'Page 1 - Field 2'
},
{
'field1': 'Page 2 - Field 1',
'field2': 'Page 2 - Field 2'
}
// Add more pages as needed
];
pdfFillForm.write('path/to/multi-page-template.pdf', multiPageFormData)
.then(result => {
fs.writeFileSync('path/to/multi-page-output.pdf', result);
})
.catch(error => {
console.error(error);
});
Specifying Encoding
To specify the encoding for the PDF output:
pdfFillForm.write('path/to/template.pdf', formData, { "encoding": "utf-8" })
.then(result => {
fs.writeFileSync('path/to/output.pdf', result);
})
.catch(error => {
console.error(error);
});
Error Handling
To handle errors while processing PDF forms:
pdfFillForm.write('path/to/template.pdf', formData)
.then(result => {
fs.writeFileSync('path/to/output.pdf', result);
})
.catch(error => {
console.error('Error:', error);
});
Example Application
Here is an example of an application that fills out a PDF form and downloads the filled form:
const express = require('express');
const pdfFillForm = require('pdf-fill-form');
const fs = require('fs');
const app = express();
app.get('/download-filled-pdf', (req, res) => {
const formData = {
'field1': 'Jane Doe',
'field2': 'jane.doe@example.com'
};
pdfFillForm.write('path/to/template.pdf', formData, { "save": "pdf" })
.then(result => {
const outputPath = 'path/to/output.pdf';
fs.writeFileSync(outputPath, result);
res.download(outputPath, 'filled_form.pdf');
})
.catch(error => {
res.status(500).send('Error generating PDF');
});
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
This simple Express.js application fills out a PDF form with predefined data and allows users to download the completed form.
By using pdf-fill-form, you can streamline your workflow and efficiently manage PDF forms programmatically.
Hash: ec09a052abcb9d023089ebd8a9902aa7b7cf109fa831061238c1732be095ac9e