[//]: #@corifeus-header
[](https://www.npmjs.com/package/p3x-html-pdf) [](https://paypal.me/patrikx3) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software) [](https://stats.uptimerobot.com/9ggnzcWrw)
# π Generates PDF from HTML with custom headers and footers with wkhtmltopdf v2025.4.116
π **Bugs are evidentβ’ - MATRIXοΈ**
π§ **This project is under active development!**
π’ **We welcome your feedback and contributions.**
### NodeJS LTS is supported
### π οΈ Built on NodeJs version
```txt
v22.13.0
```
# π Description
[//]: #@corifeus-header:end
`p3x-html-pdf` is a Node.js package that generates PDFs from HTML with custom headers and footers using `wkhtmltopdf`. It is a robust tool for creating professional-grade PDFs with features like:
- π **Dynamic Headers and Footers**: Add placeholders for page numbers, dates, and more.
- π οΈ **Customizable Layouts**: Configure margins, orientation, and paper size.
- β‘ **Async/Await Support**: Modern JavaScript compatibility for efficient workflows.
- π **Dynamic Content**: Render data-driven tables and content dynamically.
## π Installation
Install via Yarn:
```bash
yarn add p3x-html-pdf
```
Import in your project:
```javascript
const { generate } = require('p3x-html-pdf');
```
## π οΈ Features
- π **Custom Headers and Footers**
- π **Flexible Page Settings**
- β‘ **Async/Await Support**
- π **Dynamic Tables and Content**
## π Usage Example
```javascript
const { generate } = require('p3x-html-pdf');
const path = require('path');
(async () => {
const options = {
settings: {
save: true,
template: {
format: 'A4',
orientation: 'portrait',
marginLeft: 10,
marginRight: 10,
},
html: `
Content
This is a test PDF document.
| Header 1 |
Header 2 |
Header 3 |
| Data 1 |
Data 2 |
Data 3 |
| Data 4 |
Data 5 |
Data 6 |
`,
},
title: 'Sample PDF',
saveFile: path.resolve(__dirname, 'output.pdf'),
};
try {
await generate(options);
console.log('β
PDF generated successfully!');
} catch (err) {
console.error('β Error generating PDF:', err);
}
})();
```
## π§ Configuration
### Options
- **Settings**
- `save`: If false, it returns as a buffer.
- `template.format`: Page size, e.g., `A4`, `Letter`.
- `template.orientation`: Page orientation (`portrait` or `landscape`).
- `template.marginLeft`, `template.marginRight`: Margins in mm.
- `html`: HTML content with placeholders.
- **title**: PDF document title.
- **saveFile**: Path for saving the PDF.
### Placeholders
- `${page}`: Current page.
- `${pages}`: Total pages.
- `${date}`: Current date.
- `${isodate}`: ISO date format.
- `${time}`: Current time.
## π Advanced Features
- **Debugging**: Use `debug: true` to enable detailed logs.
- **Header/Footer Templates**: Define rich HTML templates for headers/footers.
## π€ Contributing
Contributions are welcome! Feel free to submit issues or pull requests on [GitHub](https://github.com/patrikx3/html-pdf).
## π License
This project is licensed under the [MIT License](https://github.com/patrikx3/html-pdf/blob/master/LICENSE).
---
For detailed documentation, visit the [npm page](https://www.npmjs.com/package/p3x-html-pdf).
---
ARM64 Support: If os.arch() === 'arm64', it automatically sets the wkhtmltopdf path to /usr/local/bin/wkhtmltopdf-arm64.
You can download and place it at:
https://github.com/houseoftech/wkhtmltopdf-arm64/raw/refs/heads/master/bin/wkhtmltopdf-arm64
[//]: #@corifeus-footer
---
## π Quick and Affordable Web Development Services
If you want to quickly and affordably develop your next digital project, visit [corifeus.eu](https://corifeus.eu) for expert solutions tailored to your needs.
---
## π Powerful Online Networking Tool
Discover the powerful and free online networking tool at [network.corifeus.com](https://network.corifeus.com).
**π Free**
Designed for professionals and enthusiasts, this tool provides essential features for network analysis, troubleshooting, and management.
Additionally, it offers tools for:
- π‘ Monitoring TCP, HTTP, and Ping to ensure optimal network performance and reliability.
- π Status page management to track uptime, performance, and incidents in real time with customizable dashboards.
All these features are completely free to use.
---
## β€οΈ Support Our Open-Source Project
If you appreciate our work, consider β starring this repository or π° making a donation to support server maintenance and ongoing development. Your support means the world to usβthank you!
---
### π₯οΈ Server Availability
Our server may occasionally be down, but please be patient. Typically, it will be back online within 15-30 minutes. We appreciate your understanding.
---
### π About My Domains
All my domains, including [patrikx3.com](https://patrikx3.com), [corifeus.hu](https://corifeus.hu), and [corifeus.com](https://corifeus.com), are developed in my spare time. While you may encounter minor errors, the sites are generally stable and fully functional.
---
### π Versioning Policy
**Version Structure:** We follow a **Major.Minor.Patch** versioning scheme:
- **Major:** π
Corresponds to the current year.
- **Minor:** π Set as 4 for releases from January to June, and 10 for July to December.
- **Patch:** π§ Incremental, updated with each build.
**π¨ Important Changes:** Any breaking changes are prominently noted in the readme to keep you informed.
---
[**P3X-HTML-PDF**](https://corifeus.com/html-pdf) Build v2025.4.116
[](https://www.npmjs.com/package/p3x-html-pdf) [](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [](https://www.patrikx3.com/en/front/contact) [](https://www.facebook.com/corifeus.software)
[//]: #@corifeus-footer:end