RAD PDF Client
Non-blocking RAD PDF client for Node.js.
This is a 100% JavaScript library, with TypeScript definition, with the Promise API.
Table of Contents
Installing
$ npm install @tshio/pdf-client
or
$ yarn add @tshio/pdf-client
Loading and configuration module
// CommonJS
const { PdfClient } = require('@tshio/pdf-client');
// ES Module
import { PdfClient } from '@tshio/pdf-client';
const options = {
host: "localhost",
port: "50080",
}
const pdfClient = new PdfClient(options);
Getting started
Create pdf
pdfClient.pdf.create({
from: "http://www.example.com",
type: "uri",
pdfOptions: {},
}).then({ url, fileId, expiryAt } => {
// ...
});
Download pdf
pdfClient.pdf.download({
fileId: "9aeb4fc5-d95c-4130-8d0e-f876e3a29565"
}).then( pdf => {
// save pdf to file
const stream = fs.createWriteStream('./example.pdf');
stream.on('finish', () => {
console.log('PDF file created');
});
stream.write(pdf);
});
API
schedulerClient.pdf.create({ from, type, pdfOptions? }) => Promise<{ url, expiryAt }>
Create pdf from url
Returns an object
{
fileId: string;
url: string;
expiryAt: Date;
}
or throw HttpError
Parameters
Name | Type | Description | Default |
---|---|---|---|
from | string |
uri or html string | |
type | string |
Source type, allowed values: uri , html
|
|
pdfOptions | object |
optional PDF options |
|
pdfOptions.scale | number |
optional Scale of the webpage rendering. |
1 |
pdfOptions.displayHeaderFooter | boolean |
optional Display header and footer. |
false |
pdfOptions.headerTemplate | string |
optional HTML template for the print header. Should be valid HTML markup with following classes used to inject printing values into them:
|
|
pdfOptions.footerTemplate | string |
optional HTML template for the print footer. Should be valid HTML markup with following classes used to inject printing values into them:
|
|
pdfOptions.printBackground | boolean |
optional Print background graphics. |
false |
pdfOptions.landscape | boolean |
optional Paper orientation. |
false |
pdfOptions.pageRanges | string |
optional Paper ranges to print, e.g., '1-5, 8, 11-13'. |
'' which means print all pages. |
pdfOptions.format | string |
optional Paper format. If set, takes priority over width or height options. |
Letter |
pdfOptions.width | number |
optional Paper width. |
|
pdfOptions.height | number |
optional Paper height. |
|
pdfOptions.margin | objetct |
optional Paper margins, defaults to none. |
|
pdfOptions.top | number |
optional Top margin. |
|
pdfOptions.right | number |
optional Right margin. |
|
pdfOptions.bottom | number |
optional Bottom margin. |
|
pdfOptions.left | number |
optional Left margin. |
schedulerClient.pdf.download({ fileId }) => Promise
Download PDF file
Returns string of pdf file content or throw HttpError
Parameters
Name | Type | Description | Default |
---|---|---|---|
fileId | string |
File ID for download pdf file |
License
This project is licensed under the terms of the MIT license.