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.