JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3
  • Score
    100M100P100Q36479F
  • License ISC

Convert ejs template to pdf with Sails.js

Package Exports

  • sails-html-pdf

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sails-html-pdf) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

sails-html-pdf

HTML to PDF hook for Sails JS

Installation

npm i --save sails-html-pdf

Usage

sails.hooks.pdf.make(template, data, options, cb)

Parameter Type Details
template string Relative path from templateDir (see "Configuration" below) to a folder containing pdf templates.
data object Data to use to replace template tokens
options object Pdf options (right now just output)
cb function Callback to be run after the pdf is created (or if an error occurs). It will contain the path to the file.

Configuration

By default, configuration lives in sails.config.pdf. The configuration key (pdf) can be changed by setting sails.config.hooks['sails-hook-pdf'].configKey.

Parameter Type Details
templateDir string Path to view templates relative to sails.config.appPath (defaults to views/pdfTemplates)

Templates

Templates are generated using your configured Sails View Engine, allowing for multiple template engines and layouts. If Sails Views are disabled, will fallback to EJS templates. To define a new email template, create a new folder with the template name inside your templateDir directory, and add an pdf.ejs file inside the folder (substituting .ejs for your template engine).

Example

Given the following pdf.ejs file contained in the folder views/pdfTemplates/testPdf:

<!DOCTYPE HTML>
<html>
  <head>
    <title>TEST</title>
  </head>
  <body>
    <div>
      <p>Hello <%=a%>!</p>
    </div>
  </body>
</html>

In your app you would run the following command.

sails.hooks.pdf.make(
  "testPdf",
  {
    a: "Bob Dole",
  },
  {
    output: 'assets/pdfs/mypdf.pdf'
  },
  function(err, result) {
    console.log(err, result);
  }
);

Or

sails.hooks.pdf.make("testPdf",
{
  a: "Bob Dole",
},
{
  output: 'assets/pdfs/mypdf.pdf'
}).then(function(result) {
  console.log(result);
}).catch(function(error) {
  console.log(error);
});

will result in creating the pdf.