API for generating a PDF files.
- Module:
pdf/pdf - Alias:
pdf/pdf - Definition: https://github.com/eclipse/dirigible/issues/763
- Source: /documents/v4/pdf.js
- Facade: PDFFacade
- Status:
stable
Basic Usage
import { response } from "sdk/http";
import { pdf } from "sdk/pdf";
const data = {
title: "Lorem Ipsum",
description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus lacinia fermentum magna, sit amet accumsan felis auctor ac.",
columns: [{
name: "Id",
key: "id"
}, {
name: "First Name",
key: "firstName",
}, {
name: "Last Name",
key: "lastName"
}, {
name: "Age",
key: "age"
}],
rows: [{
id: 1001,
firstName: "John",
lastName: "Doe",
age: 29
}, {
id: 1002,
firstName: "Jane",
lastName: "Doe",
age: 26
}, {
id: 1003,
firstName: "Joe",
lastName: "Doe",
age: 44
}, {
id: 1004,
firstName: "Jill",
lastName: "Doe",
age: 40
}]
};
let document = pdf.generateTable(data);
response.setContentType("application/pdf");
response.setHeader('Content-Disposition', 'filename="data.pdf"');
response.write(document);
response.flush();
response.close();
Functions
| Function | Description | Returns |
|---|---|---|
| generate(templatePath, data) | Generates PDF file from a given template and data | byte array |
| generateTable(data, config) | Generates PDF file with table data and config | byte array |
Objects
TableData
| Property | Description | Type |
|---|---|---|
| title | (Optional) Title of the PDF document. | string |
| description | (Optional) Description of the PDF document. | string |
| columns | The table columns. | array of TableDataColumns |
| rows | The table data. | array of TableDataRows |
TableDataColumns
| Property | Description | Type |
|---|---|---|
| name | The displayed column name. | string |
| key | The property key in the rows object. | string |
TableDataRows
| Property | Description | Type |
|---|---|---|
arbitrary-number-of-properties |
The row data. | any |
| highlight | (Optional) Whether to highlight the row. | boolean |
| breakAfter | (Optional) Whether to bold the row. | boolean |
TableConfig
| Property | Description | Type | Default |
|---|---|---|---|
| size | (Optional) The PDF document size. | string | A4 |
| alignColumns | (Optional) The column alignmnet property. | start, center, end | center |
| alignRows | (Optional) The rows alignmnet property. | start, center, end | center |
Sample TableConfig:
let config = {
size: "A3",
alignColumns: "start"
alignRows: "end"
};