https://github.com/pierredemailly/nhtmltopdf
Package to turn HTML content/file or url into pdf
https://github.com/pierredemailly/nhtmltopdf
Last synced: 6 days ago
JSON representation
Package to turn HTML content/file or url into pdf
- Host: GitHub
- URL: https://github.com/pierredemailly/nhtmltopdf
- Owner: PierreDemailly
- License: mit
- Created: 2021-02-24T11:13:08.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-02-24T11:22:02.000Z (over 5 years ago)
- Last Synced: 2025-02-10T09:44:17.717Z (over 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 239 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# nHTMLToPDF
Node lib for converts HTML with dynamic or static content or url to PDF files
## Installation
```$ npm install @rossbob/html-to-pdf```
## Unit Test
- Jest
- Coverage : 100%
## Usage
```js
async function main() {
try {
const browser = await pdf.initBrowser();
const pdfs = await pdf.generatePDF(browser, files);
const pdf = await pdf.generatePDF(browser, file);
const stream = await fs.createWriteStream(`./${your_pdf_name}.pdf`);
await stream.write(pdf.buffer); // => create file for the given buffer.
for (let file of pdfs) {
await stream.write(file.buffer); // => create file for each given buffer
}
await pdf.terminateBrowser;
} catch (error) {
throw new Error(error);
}
}
main().catch(console.error);
```
### initBrowser(): Promise
```js
async function main() {
try {
const browser = await pdf.initProcess();
} catch (error) {
throw new Error(error);
}
}
main().catch(console.error);
```
### generatePDF(browser: Browser, files: pdfFile[], options?: PDFOPtions): Promise
```ts
interface pdfFile {
content?: string,
url?: string,
options?: {}
}
More Info [there](https://pptr.dev/#?product=Puppeteer&version=v7.1.0&show=api-pagepdfoptions)
interface PDFOptions {
path?: string,
scale?: number,
displayHeaderFooter?: boolean,
headerTemplate?: string,
footerTemplate?: string,
printBackground?: boolean,
landscape?: boolean,
pageRanges?: string,
format?: string,
width?: string | number,
height?: string | number,
margin?: {
top?: string | number,
right?: string | number,
bottom?: string | number,
left?: string | number,
},
preferCSSPageSize?: boolean
}
interface PDF {
options?: string,
buffer: Buffer
}
```
```js
async function main() {
try {
const browser = await pdf.initBrowser();
const result1 = await pdf.generatePDF(browser, files);
} catch (error) {
throw new Error(error);
}
}
main().catch(console.error);
```
### terminateBrowser(browser: Browser): Promise
```js
async function main() {
try {
const browser = await pdf.initBrowser();
await pdf.terminateBrowser
} catch (error) {
throw new Error(error);
}
}
main().catch(console.error);
```
### How to use [Zup](https://github.com/mscdex/zup)