var fonts = {
Roboto: {
normal: 'fonts/Roboto-Regular.ttf',
bold: 'fonts/Roboto-Medium.ttf',
italics: 'fonts/Roboto-Italic.ttf',
bolditalics: 'fonts/Roboto-MediumItalic.ttf'
}
};
var printer = new PdfPrinter(fonts);
import PdfPrinter from 'pdfmake';
import * as fs from "fs";
var workplace = "ВЛ 10 кВ ТП №265- ТП № 240";
var organization_name = "Филиал \"СЭС\"";
var subdivision_name = "Пушкинский РЭС";
var externalDataRetrievedFromServer = [
{ 'Наименование и местоположение объекта:': workplace, 'Выявленные дефекты:': 'deffect 1', 'Срок устранения:': 10 },
{ 'Наименование и местоположение объекта:': 'Place 2', 'Выявленные дефекты:': 'deffect 2', 'Срок устранения:': 20 },
{ 'Наименование и местоположение объекта:': 'Place 3', 'Выявленные дефекты:': 'deffect 3', 'Срок устранения:': 30 },
];
function buildTableBody(data, columns) {
var body = [];
body.push(columns);
data.forEach(function(row) {
var dataRow = [];
columns.forEach(function(column) {
dataRow.push(row[column].toString());
});
body.push(dataRow);
});
return body;
}
function table(data, columns) {
return {
table: {
headerRows: 1,
body: buildTableBody(data, columns)
}
};
}
var docDefinition = {
content: [
{
text: "Организация: " + organization_name,
style: 'SubTitleBold'
},
{
text: "Подразделение: " + subdivision_name,
style: 'SubTitleBold'
},
'\n',
{
text: "ЛИСТОК ОСМОТРА ВЛ",
style: 'TitleBold',
alignment: 'center'
},
{
text: workplace,
alignment: 'center'
},
'\n',
table(externalDataRetrievedFromServer, ['Наименование и местоположение объекта:', 'Выявленные дефекты:', 'Срок устранения:'])
],
styles: {
TitleBold: {
fontSize: 14,
bold: true
},
SubTitleBold: {
fontSize: 14,
bold: true
}
}
}
var options = {}
var pdfDoc = printer.createPdfKitDocument(docDefinition, options);
pdfDoc.pipe(fs.createWriteStream('document.pdf'));
pdfDoc.end();