Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@namindu/html-to-pdf-node

Package Overview
Dependencies
Maintainers
0
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@namindu/html-to-pdf-node

node pdf creator from html/ejs template

  • 1.0.2
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
15
decreased by-31.82%
Maintainers
0
Weekly downloads
 
Created
Source

@namindu/html-to-pdf-node library is written based on another library pdf-creator-node . pdf-creator-node used Handlebars as the template engine. This library uses EJS template engine to generate HTML. You can use EJS syntax to generate dynamic content.

Follow these steps to convert HTML to PDF

  • Step 1 - install the pdf creator package using the following command

    $ npm i @namindu/html-to-pdf-node

  • Step 2 - Add required packages and read HTML template

    //Required package
    var pdf = require("@namindu/html-to-pdf-node");
    var fs = require("fs");
    
    // Read HTML Template
    var html = fs.readFileSync("template.ejs", "utf8");
    

With ES6 import syntax

//Required package
import pdf from "@namindu/html-to-pdf-node";
import fs from "fs";

// Read HTML Template
const html = fs.readFileSync("template.ejs", "utf8");
  • Step 3 - Create your HTML Template

This library uses EJS template engine to generate HTML. You can use EJS syntax to generate dynamic content.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>Hello world!</title>
  </head>
  <body>
    <h1>User List</h1>
    <ul>
      <% users.forEach(function(user) { %>
      <li>Name: <%= user.name %></li>
      <li>Age: <%= user.age %></li>
      <br />
      <% }); %>
    </ul>
  </body>
</html>
  • Step 4 - Provide format and orientation as per your need

    "height": "10.5in", // allowed units: mm, cm, in, px

    "width": "8in", // allowed units: mm, cm, in, px

    • or -

    "format": "Letter", // allowed units: A3, A4, A5, Legal, Letter, Tabloid

    "orientation": "portrait", // portrait or landscape

        var options = {
            format: "A3",
            orientation: "portrait",
            border: "10mm",
            header: {
                height: "45mm",
                contents: '<div style="text-align: center;">Footer Text</div>'
            },
            footer: {
                height: "28mm",
                contents: {
                    first: 'Cover page',
                    2: 'Second page', // Any page number is working. 1-based index
                    default: '<span style="color: #444;">{{page}}</span>/<span>{{pages}}</span>', // fallback value
                    last: 'Last Page'
                }
            }
        };
    
  • Step 5 - Provide HTML, user data and PDF path for output

    var users = [
      {
        name: "Shyam",
        age: "26",
      },
      {
        name: "Navjot",
        age: "26",
      },
      {
        name: "Vitthal",
        age: "26",
      },
    ];
    var document = {
      html: html,
      data: {
        users: users,
      },
      path: "./output.pdf",
      type: "file",
    };
    

    Type can be buffer or stream or file (default is file)

  • Step 6 - After setting all parameters, just pass document and options to pdf.create method.

    pdf
      .create(document, options)
      .then((res) => {
        console.log(res);
      })
      .catch((error) => {
        console.error(error);
      });
    

End

License

@namindu/html-to-pdf-node is MIT licensed.

Keywords

FAQs

Package last updated on 18 Sep 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc