@iqx-limited/quick-pdf
v1.0.21
Published
Converting PDFs to images (π to πΈ)
Downloads
1,260
Readme
QuickPDF
Handling PDFs in NodeJS (π to πΌοΈ)
This project provides a set of utilities for converting various file formats without the need for additional dependencies. It supports multiple file types and leverages technologies like Playwright
, PDFKit
, and pdfjs-dist
for file processing.
Features
- HTML to PDF: Converts HTML content (from a URL or file path) into a PDF.
- Image to PDF: Converts images (JPEG, PNG) into a PDF, with optional headers and footers.
- PDF to Image: Converts PDF files to image formats (JPEG or PNG) using
pdfjs-dist
andcanvas
. - Utilities: Includes helper functions to fetch and read HTML files and read files from local directories.
Requirements
- Node.js: This project is built with Node.js and uses ES modules. NodeJS > v22 required.
- Chromium is a dependency of this project, used via Playwright. To install browsers via cli run
npx playwright install --with-deps chromium
. If running in a ci enviroment you can include--only-shell
Operations Available in the Package
1. html2pdf
Function Signature:
html2pdf(input: string | URL)
Validation occurs on the html string passed. The Error Object returned is:
{
valid: boolean,
count: {
errors: number,
warnings: number
},
validation: [ {
file: string,
count: {
errors: number,
warnings: number
},
messages: [ {
message: string,
line: number,
column: number,
ruleId: string
} ]
} ]
}
Parameters:
| Parameter | Type | Description | Data that can be passed |
|-----------|---------------|--------------------------------------------------|--------------------------------------------|
| input
| string \| URL
| The HTML content to convert to PDF. | A file path or a URL pointing to HTML content, as either a Node URL object or a Node string. Alternativly pass an html string directly. |
| options
| Options
| Optional configuration for the PDF conversion. | An object with optional to configure PDF |
Options Type:
| Property | Type | Description | Default |
|-----------|----------|--------------------------------------------------|---------|
| base64
| boolean
| PDF should be returned as a base64 encoded string. |false|
| rules
| object
| Optional custom validation rules for HTML content - see https://html-validate.org/rules/ for more details. Default is all standard rules enabled. |''|
| scale
| number
| Scale of the PDF | 1 |
2. img2pdf
Function Signature:
img2pdf(input: Buffer | string | URL, options: Options = {})
Parameters:
| Parameter | Type | Description | Data that can be passed |
|-----------|---------------------------|--------------------------------------------------|--------------------------------------------|
| input
| Buffer \| string \| URL
| The image content to convert to PDF. | A Buffer, file path, or URL pointing to an image. String or URL object can be passed for an HTTP or Local Path. |
| options
| Options
| Optional configuration for the PDF conversion. | An object with optional configurations. |
Options Type:
| Property | Type | Description | Default |
|-----------|----------|--------------------------------------------------|---------|
| header
| string
| Optional header text to include in the PDF. |undefined|
| footer
| string
| Optional footer text to include in the PDF. |undefined|
| fontSize
| number
| Font Size of the header or footer | 10 |
3. pdf2img
Function Signature:
pdf2img(input: Buffer | string | URL, options: Options = {})
Parameters:
| Parameter | Type | Description | Data that can be passed |
|-----------|---------------------------|--------------------------------------------------|--------------------------------------------|
| input
| Buffer \| string \| URL
| The PDF content to convert to images. | A Buffer, file path, or URL pointing to a PDF. String or URL object can be passed for an HTTP or Local Path. |
| options
| Options
| Optional configuration for the image conversion. | An object with optional scale, password, and buffer configuration |
Options Type:
| Property | Type | Description |
|-----------|----------------------------------------------------------------------|--------------------------------------------------|
| scale
| number
| Scaling factor for rendering the PDF pages. Default is 1. |
| password
| string
| Optional password for decrypting password-protected PDFs. |
| mime
| string
| The mime type to output - "image/png" | "image/jpeg". Default is "image/png". |