A JavaScript module to use PrexView, a fast, scalable and friendly service for programatic HTML, PDF, PNG or JPG generation using JSON or XML data.
See PrexView for more information about the service.
Installation
npm install --save prexview
Getting started
Get your API Key
You can get an API Key from PrexView
Set up your API Key
If you can setup enviroment variables
export PXV_API_KEY="YOUR_API_KEY"
If you can't setup environment variables, create the PrexView object with your API Key as argument
pxv = 'YOUR_API_KEY';
Include the library
const PrexView =
Sending an XML
To send an XML string use pxv.sendXML(xml, options)
method, this method will return a Promise with the Response object on success or an error if something is wrong.
Example
const fs = const PrexView = const pxv = ; const options = template: 'supported_languages' output: 'pdf' const xml = `<?xml version="1.0" encoding="UTF-8"?><languages> <lang code="en">English</lang> <lang code="es">Español</lang> <lang code="fr">Française</lang></languages>`; const file = 'test.pdf' pxv
Sending a JSON
To send a JSON string or JavaScript object use pxv.sendJSON(json, options)
method, this method will return a Promise with the Response object on success or an error if something is wrong.
Example
const fs = const PrexView = const pxv = ; const options = template: 'supported_languages' output: 'pdf' // this can also be a valid string.const json = languages: code: 'en' name: 'Inglés' code: 'es' name: 'Spanish' code: 'fr' name: 'Française' const file = 'test.pdf' pxv
Response object
Property | Type | Description |
---|---|---|
id | string |
Transaction ID. |
file | binary |
Document created by the service. |
responseTime | int |
Response time from service. |
rateLimit | int |
Maximum number of calls to the service. |
rateLimitReset | int |
Seconds to reset the rate limit. |
rateRemaining | int |
Number of remaining call to the service. |
Options
Name | Type | Required | Description |
---|---|---|---|
template | string |
Yes | Template's name to be used to document creation, you can use dynamic values. |
output | string |
Yes | Type of document that will be created by PrexView service, it must be html, pdf, png or jpg. |
note | string |
No | Custom information to be added to the document's metadata, it's limit up to 500 characters and you can use dynamic values. |
format | string |
No | Type of data used to the document creation, it must be xml or json, this should be inferred from library methods. |
templateBackup | string |
No | Template's name to use to be used if the option template is not available in the service. |
Dynamic values
In template or note options you can use JSON sintax to access data and have dynamic values, for instance having the following JSON data:
Your template or note can use any data attribute or text node, for instance:
'invoice-customer-{{Data.customer}}'
Then we will translate that to the following:
'invoice-customer-123'
And finally the service will try to find the template or note invoice-customer-123
in order to transform the data and generate the document.
License
MIT © PrexView