0.0.45 • Published 1 year ago

pdfactory-core v0.0.45

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

pdfactory-core

  • Generate pdf documents from html files.
  • Generate dynamic pdf documents using ejs files as templates.

Supports

  • html
  • ejs

Installation

yarn add pdfactory-code

Example using ejs and express

Directory structure

/main.js
/templates
  /partials
    /page1.ejs
  /document.ejs

document.ejs

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8" />
</head>

<body>
  <div>
  <%- include('./partials/page1.ejs'); -%>
  </div>
</body>

</html>

page1.ejs

<div>
  <%= title %>
</div>

main.js

const express = require("express");
const path = require("path");
const { pdfactory } = require("pdfactory-core");

const templatesDir = path.join(__dirname, "templates");
const partialsDir = path.join(__dirname, "templates", "partials");

const DEFAULT_CONFIG = {
  templatesDir: [templatesDir, partialsDir],
  ejsOptions: {
    views: [templatesDir], // For relative include paths  
  },
};

const init = async () => {
  const pdfactoryHandler = await pdfactory(DEFAULT_CONFIG);

  const app = express();

  app.use(express.json());

  const requestHandler = async (req, res) => {
    let pdf = null;

     try {
      pdf = await pdfactoryHandler(req.body)
    } catch (e) {
      res.status(400).send(e)
      return
    }
    
    res.set({
      "Content-Type": "application/pdf",
      "Content-Length": pdf.length,
    });

    res.send(pdf);
  };

  app.post("/", requestHandler);

  app.listen(3000);

  return app;
};

init();

Example request

POST https://localhost:3000
{
    "document": "document",
    "data": {
        "title": "pdfactory pdf"
    }
}
0.0.40

1 year ago

0.0.41

1 year ago

0.0.42

1 year ago

0.0.43

1 year ago

0.0.44

1 year ago

0.0.45

1 year ago

0.0.35

1 year ago

0.0.36

1 year ago

0.0.37

1 year ago

0.0.38

1 year ago

0.0.39

1 year ago

0.0.34

1 year ago

0.0.33

1 year ago

0.0.32

1 year ago

0.0.31

1 year ago

0.0.30

1 year ago

0.0.28

1 year ago

0.0.27

1 year ago

0.0.26

1 year ago