npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-htmlcsstopdf

v3.1.5

Published

n8n community node to convert HTML and CSS to PDF using PdfMunk API - perfect for invoices, reports, certificates, and document generation

Readme

n8n-nodes-htmlcsstopdf

PDFMunk Banner

Get your api key from https://pdfapihub.com)

An n8n community node for creating PDFs from HTML/CSS or URLs, manipulating PDFs (merge/split/compress), securing PDFs (lock/unlock), and parsing PDFs to structured JSON — powered by the PDFMunk API.

Features

  • PDF Creation
    • HTML to PDF: Render HTML + optional CSS into a PDF
    • URL to PDF: Capture a website as a PDF (full-page support)
    • Dynamic Params: Template placeholder replacement for HTML generation
    • Viewport Control: Configure viewport width/height
    • Flexible Output: Return a direct URL or a binary PDF file
    • Output Filename: Set the resulting PDF filename
    • Configurable Timeout: Increase timeouts for large/slow renders
  • PDF Manipulation
    • Merge PDFs: Merge 2–15 PDFs from URLs
    • Split PDF: Extract specific pages, split each page, or split into chunks
    • Compress PDF: Reduce file size with selectable compression levels
  • PDF Security
    • Lock PDF: Add password protection (optionally provide input password for already-encrypted PDFs)
    • Unlock PDF: Remove password protection
  • PDF Extraction & Parsing
    • Parse PDF to JSON: Extract text/layout/tables/full extraction with page selection

Installation

Follow the installation guide in the n8n community nodes documentation.

Community Nodes (Recommended)

  1. Go to Settings > Community Nodes in your n8n instance
  2. Click Install a community node
  3. Enter n8n-nodes-htmlcsstopdf
  4. Click Install

Manual Installation

# Navigate to your n8n installation directory
cd ~/.n8n/nodes

# Install the package
npm install n8n-nodes-htmlcsstopdf

Docker

Add the package to your n8n Docker container:

FROM n8nio/n8n:latest
USER root
RUN npm install -g n8n-nodes-htmlcsstopdf
USER node

Getting Your PDFMunk API Key

  1. Sign Up: Visit PDFMunk.com and create an account
  2. Verify Email: Check your email and verify your account
  3. Access Dashboard: Log in to your PDFMunk dashboard
  4. Generate API Key:
    • Navigate to the "API Keys" section
    • Click "Generate New API Key"
    • Copy your API key securely
  5. Choose Plan: Select a plan based on your usage needs (see PDFMunk pricing for current limits).

Configuration

Setting Up Credentials

  1. In n8n, go to Credentials
  2. Click + Add Credential
  3. Search for "HtmlCssToPdf API"
  4. Enter your PDFMunk API key
  5. Test the connection
  6. Save the credential

Operations

The node exposes operations grouped by Resource.

PDF Creation

HTML to PDF

Generate a PDF from custom HTML and optional CSS.

Parameters:

  • HTML Content (html_content)
  • CSS Content (css_content, optional)
  • Dynamic Params (dynamic_params, optional key/value pairs for templating)
  • Viewport Width/Height (viewPortWidth, viewPortHeight)
  • Output Format (output_format: url or file)
  • Output Filename (output_filename, without .pdf)
  • Timeout (in Seconds) (timeout, default: 300)

URL to PDF

Generate a PDF from a website URL.

Parameters:

  • URL (url)
  • Full Page (full_page, default: true)
  • Wait Till (wait_till, milliseconds to wait before capture)
  • Viewport Width/Height (viewPortWidth, viewPortHeight)
  • Output Format (output_format: url or file)
  • Output Filename (output_filename, without .pdf)
  • Timeout (in Seconds) (timeout, default: 300)

PDF Manipulation

Merge PDFs

Merge multiple PDF URLs into one document.

Parameters:

  • PDF URLs (pdf_urls, comma-separated; minimum 2, maximum 15)
  • Output Type (merge_output: url, file, or base64)

Split PDF

Split or extract pages from a PDF.

Parameters:

  • PDF URL (split_url)
  • Split Mode (split_mode)
    • pages: extract a page range/list via Page Range (pages)
    • each: split each page into its own PDF
    • chunks: split into Number of Chunks (chunks)
  • Output Type (split_output: url, file, or base64)

Compress PDF

Compress a PDF to reduce file size.

Parameters:

  • PDF URL (compress_url, max 10MB)
  • Compression Level (compression: low, medium, high, max)
  • Output Type (compress_output: url, file, or base64)
  • Output Filename (compress_output_name, e.g. compressed.pdf)

PDF Security

Lock PDF

Add password protection to a PDF.

Parameters:

  • PDF URL (lock_url, max 10MB)
  • Password (lock_password)
  • Input Password (lock_input_password, optional)
  • Output Type (lock_output: url, file, or base64)
  • Output Filename (lock_output_name, e.g. locked.pdf)

Unlock PDF

Remove password protection from a PDF.

Parameters:

  • PDF URL (unlock_url, max 10MB)
  • Password (unlock_password)
  • Output Type (unlock_output: url, file, or base64)
  • Output Filename (unlock_output_name, e.g. unlocked.pdf)

PDF Extraction & Parsing

Parse PDF

Parse a PDF into structured JSON.

Parameters:

  • PDF URL (parse_url)
  • Parse Mode (parse_mode: text, layout, tables, full)
  • Pages (parse_pages: all or ranges like 1-3)

Usage

Basic HTML to PDF Conversion

{
  "operation": "htmlToPdf",
  "html_content": "<h1>Hello World</h1><p>This is a test document.</p>",
  "css_content": "h1 { color: blue; } p { font-size: 14px; }",
  "viewPortWidth": 1080,
  "viewPortHeight": 720,
  "output_format": "file",
  "output_filename": "hello-world",
  "timeout": 300
}

Advanced Usage Examples

1. Invoice Generation

<!DOCTYPE html>
<html>
<head>
    <style>
        .invoice { font-family: Arial, sans-serif; }
        .header { background-color: #f0f0f0; padding: 20px; }
        .total { font-weight: bold; font-size: 18px; }
    </style>
</head>
<body>
    <div class="invoice">
        <div class="header">
            <h1>Invoice #12345</h1>
        </div>
        <div class="total">Total: $299.99</div>
    </div>
</body>
</html>

2. Report Generation

<div class="report">
    <h1>Monthly Report</h1>
    <table border="1">
        <tr><th>Metric</th><th>Value</th></tr>
        <tr><td>Sales</td><td>$50,000</td></tr>
        <tr><td>Growth</td><td>15%</td></tr>
    </table>
</div>

3. Certificate Generation

<div class="certificate">
    <h1>Certificate of Completion</h1>
    <p>This certifies that <strong>John Doe</strong> has completed the course.</p>
    <div class="signature">Authorized Signature</div>
</div>

### PDF Manipulation Examples

#### Merge PDFs
```json
{
  "resource": "pdfManipulation",
  "operation": "mergePdfs",
  "pdf_urls": "https://example.com/a.pdf, https://example.com/b.pdf",
  "merge_output": "url"
}

Split PDF (extract pages)

{
  "resource": "pdfManipulation",
  "operation": "splitPdf",
  "split_url": "https://example.com/document.pdf",
  "split_mode": "pages",
  "pages": "1-3",
  "split_output": "url"
}

Compress PDF

{
  "resource": "pdfManipulation",
  "operation": "compressPdf",
  "compress_url": "https://example.com/document.pdf",
  "compression": "high",
  "compress_output": "file",
  "compress_output_name": "compressed.pdf"
}

PDF Security Examples

Lock PDF

{
  "resource": "pdfSecurity",
  "operation": "lockPdf",
  "lock_url": "https://example.com/document.pdf",
  "lock_password": "your-password",
  "lock_output": "file",
  "lock_output_name": "locked.pdf"
}

Unlock PDF

{
  "resource": "pdfSecurity",
  "operation": "unlockPdf",
  "unlock_url": "https://example.com/locked.pdf",
  "unlock_password": "your-password",
  "unlock_output": "file",
  "unlock_output_name": "unlocked.pdf"
}

PDF Parsing Example

Parse PDF to JSON

{
  "resource": "pdfParsing",
  "operation": "parsePdf",
  "parse_url": "https://example.com/document.pdf",
  "parse_mode": "full",
  "parse_pages": "all"
}

## Use Cases

### Business Applications
- **Invoice Generation**: Automatically generate invoices from order data
- **Report Creation**: Convert analytics data into professional PDF reports
- **Contract Generation**: Create contracts from templates with dynamic data
- **Certificate Issuance**: Generate certificates for course completions
- **Receipt Creation**: Convert transaction data into PDF receipts

### Content Management
- **Document Archival**: Convert web pages to PDF for archival purposes
- **Newsletter PDFs**: Transform HTML newsletters into PDF format
- **eBook Creation**: Generate PDF books from HTML content
- **Documentation**: Convert online docs to downloadable PDFs

### Marketing & Sales
- **Proposal Generation**: Create branded proposals from CRM data
- **Brochure Creation**: Generate marketing materials dynamically
- **Price Lists**: Convert product catalogs to PDF format
- **Quotation PDFs**: Transform quotes into professional PDFs

## Workflow Examples

### Example 1: E-commerce Invoice
```json
{
  "nodes": [
    {
      "name": "Order Webhook",
      "type": "n8n-nodes-base.webhook"
    },
    {
      "name": "Generate Invoice HTML",
      "type": "n8n-nodes-base.function"
    },
    {
      "name": "Convert to PDF",
      "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
    },
    {
      "name": "Email PDF",
      "type": "n8n-nodes-base.emailSend"
    }
  ]
}

Example 2: Scheduled Reports

{
  "nodes": [
    {
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.cron"
    },
    {
      "name": "Fetch Analytics Data",
      "type": "n8n-nodes-base.httpRequest"
    },
    {
      "name": "Build Report HTML",
      "type": "n8n-nodes-base.function"
    },
    {
      "name": "Generate PDF Report",
      "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
    },
    {
      "name": "Save to Google Drive",
      "type": "n8n-nodes-base.googleDrive"
    }
  ]
}

Output

The node returns:

  • URL output: A direct link (or URL(s), depending on operation)
  • File output: Binary PDF file data in n8n (usable by "Write Binary File", email attachments, etc.)
  • Base64 output (where available): Base64-encoded result in the JSON response

Error Handling

The node provides detailed error messages for common issues:

  • Invalid API Key: Check your PDFMunk credentials
  • HTML Parse Error: Validate your HTML syntax
  • CSS Error: Check your CSS for syntax errors
  • Rate Limit: Upgrade your PDFMunk plan or wait for reset
  • Network Error: Check your internet connection
  • Timeout Error: Increase the timeout setting for large PDFs (default: 300 seconds)

FAQ

Q: Is there a free tier?
A: PDFMunk may offer trial/free usage depending on current plans. Check the PDFMunk dashboard/pricing for the latest limits.

Q: What HTML features are supported?
A: Most modern HTML5 and CSS3 features are supported, including flexbox, grid, and media queries.

Q: Can I use external images?
A: Yes, images accessible via URL will be included in the PDF.

Q: What's the maximum file size?
A: Some operations in this node expect PDFs up to 10MB (as indicated in the node parameters). Check PDFMunk documentation for current limits and plan-specific constraints.

Q: How do I generate large PDFs (100+ pages)?
A: Increase the timeout setting in the node configuration. For large PDFs, set timeout to 600-900 seconds (10-15 minutes).

Q: What should I do if I get a gateway timeout error?
A: Increase the timeout parameter in the node settings. The default is 300 seconds (5 minutes), but large PDFs may need 600-900 seconds.

Compatibility

  • n8n version: 0.187.0+
  • Node.js: 18.0.0+
  • Supported formats: HTML, CSS, PDF

Resources

PDF Creation

Support

For questions or support, please contact us at: [email protected]

You can also join the n8n community forum for general n8n-related discussions.

Contributing

Contributions are welcome! Please read our contributing guidelines and submit pull requests for any improvements.

License

MIT License - see LICENSE.md file for details.

Changelog

v2.1.1

  • Added configurable timeout parameter for large PDF generation
  • Improved error handling for gateway timeouts
  • Updated documentation with timeout troubleshooting

v2.0.2

  • Improved error handling
  • Performance optimizations

v2.0.1

  • Bug fixes and stability improvements

v2.0.0

  • Complete rewrite with new PDFMunk API
  • Enhanced CSS support
  • Better error messages

Built with ❤️ for the n8n community