https://github.com/microfleet/html-to-pdf
Renders mustache template to HTML and then creates PDF in headless chrome - useful for generating PDF reports with rich formatting
https://github.com/microfleet/html-to-pdf
headless-chrome html-to-pdf microfleet microservices nodejs
Last synced: 8 months ago
JSON representation
Renders mustache template to HTML and then creates PDF in headless chrome - useful for generating PDF reports with rich formatting
- Host: GitHub
- URL: https://github.com/microfleet/html-to-pdf
- Owner: microfleet
- License: mit
- Created: 2017-06-27T03:38:32.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2025-06-10T03:42:33.000Z (10 months ago)
- Last Synced: 2025-06-14T07:08:05.442Z (9 months ago)
- Topics: headless-chrome, html-to-pdf, microfleet, microservices, nodejs
- Language: JavaScript
- Homepage:
- Size: 917 KB
- Stars: 5
- Watchers: 3
- Forks: 2
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# @microfleet/html-to-pdf

HTML to PDF @microfleet service is designed to render any provided mustache template with arbitrary context and is able to send back base64 encoded PDF or upload id in case of integration with @microfleet/files
## Configuration
* Consult with [@microfleet/core](https://github.com/microfleet/core) for generic configuration
* [configuration schema](schemas/config.json) - service configuration options
By default delayed-retry on Quality of Service is enabled, which effectively retries actions when
unexpected errors occur up to 5 times by default with exponential delay.
## API
Description of available API methods
### `pdf.render`
Renders `mustache` template with passed context, feeds that document to Chrome & save it as PDF. Then uploads it to storage of choice using [@microfleet/files](https://github.com/makeomatic/ms-files) or returns PDF as base64 encoded data
Following params are accepted:
```js
{
"template": "name-of-the-template-to-render",
"context": {
... // arbitrary object with data thats passed to template for rendering
},
"documentOptions": {
... // chrome's printToPdf document options - https://chromedevtools.github.io/devtools-protocol/tot/Page/#method-printToPDF
},
"meta": {
... // can be boolean `false` to turn off @microfleet/files integration
... // or can be an object defining the upload
},
}
```
For a detailed description of API params look at [validation schema](schemas/render.json)