????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/controllers/baocao/ |
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/controllers/baocao/PDFController.js |
// var reportCtrl = require('./ReportController').create(); var fs = require('fs'); var path = require('path'); var moment = require('moment'); var PDFMake = require('pdfmake'); const { exportPath } = require('../../appconfig'); module.exports.reportFond = function (recordset) { var tableHeader = [ { text: 'Số phông', style: 'tableHeader' }, { text: 'Tên phông', style: 'tableHeader' }, { text: 'Số hồ sơ', style: 'tableHeader' }, { text: 'Số văn bản', style: 'tableHeader' }, { text: 'Số trang', style: 'tableHeader' } ]; var tableBody = [tableHeader]; for (var i = 0; i < recordset.length; i++) { var record = []; record.push(recordset[i]['FondNumber']); record.push(recordset[i]['FondName']); record.push(recordset[i]['tongSoHS'].toLocaleString('vi-VN')); record.push(recordset[i]['tongSoVB'].toLocaleString('vi-VN')); record.push(recordset[i]['tongSoTrang'].toLocaleString('vi-VN')); tableBody.push(record); } var pdfContent = [ { text: 'Báo cáo phông', style: 'header' }, { table: { widths: [50, '*', 50, 50, 60], body: tableBody }, layout: { fillColor: function (rowIndex, _node, _columnIndex) { return (rowIndex % 2 === 0) ? '#CCCCCC' : null; } } } ]; return createPDF('ReportFond', pdfContent); } module.exports.reportFile = function (recordset) { // var recordset = await reportCtrl.reportFiles(reqBody); var tableHeader = [ { text: 'STT', style: 'tableHeader' }, { text: 'Phông', style: 'tableHeader' }, { text: 'Mục lục', style: 'tableHeader' }, { text: 'Hộp', style: 'tableHeader' }, { text: 'Hồ sơ', style: 'tableHeader' }, { text: 'Tiêu đề', style: 'tableHeader' }, { text: 'Thời gian tài liệu', style: 'tableHeader' }, { text: 'Thời hạn', style: 'tableHeader' }, { text: 'Số trang', style: 'tableHeader' }, { text: 'Số tờ', style: 'tableHeader' }, { text: 'Ghi chú', style: 'tableHeader' }, { text: 'Cán bộ số hóa', style: 'tableHeader' } ] var tableBody = [tableHeader]; for (var i = 0; i < recordset.length; i++) { var record = []; record.push(recordset[i].RowNum); record.push(recordset[i].FondName); record.push(recordset[i].FileCatalog); record.push(recordset[i].BoxNumber); record.push(recordset[i].FileNumber); record.push(recordset[i].Title); var date = []; if (moment(recordset[i].StartDate).isValid()) date.push(moment(recordset[i].StartDate).format('DD/MM/YYYY')); if (moment(recordset[i].EndDate).isValid()) date.push(moment(recordset[i].EndDate).format('DD/MM/YYYY')); record.push(date.join('\n')); record.push(recordset[i].Maintenance ? `${recordset[i].Maintenance} năm` : 'Vĩnh viễn'); record.push(recordset[i].PageNumber || 0); record.push(recordset[i].SheetNumber || 0); record.push(recordset[i].Description || null); record.push(recordset[i].EditedBy); tableBody.push(record); } var pdfContent = [ { text: 'Báo cáo văn bản', style: 'header' }, { table: { widths: [30, '*', 25, 25, 30, 'auto', 70, 35, 25, 25, '*', 50], body: tableBody }, layout: { fillColor: function (rowIndex, _node, _columnIndex) { return (rowIndex % 2 === 0) ? '#e8e8e8' : null; } } } ]; return createPDF('ReportFile', pdfContent); } module.exports.reportDoc = function (recordset) { // var recordset = await reportCtrl.reportDocuments(reqBody); var tableHeader = [ { text: 'STT', style: 'tableHeader' }, { text: 'Phông', style: 'tableHeader' }, { text: 'Mục lục', style: 'tableHeader' }, { text: 'Hộp', style: 'tableHeader' }, { text: 'Hồ sơ', style: 'tableHeader' }, { text: 'Số, ký hiệu', style: 'tableHeader' }, { text: 'Ngày ban hành', style: 'tableHeader' }, { text: 'Cơ quan ban hành', style: 'tableHeader' }, { text: 'Trích yếu', style: 'tableHeader' }, { text: 'Số trang', style: 'tableHeader' }, { text: 'Ghi chú', style: 'tableHeader' }, { text: 'Cán bộ số hóa', style: 'tableHeader' } ] var tableBody = [tableHeader]; for (var i = 0; i < recordset.length; i++) { var record = []; record.push(recordset[i].RowNum); record.push(recordset[i].FondName); record.push(recordset[i].FileCatalog); record.push(recordset[i].BoxNumber); record.push(recordset[i].FileNumber); var code = []; if (recordset[i].CodeNumber) code.push(recordset[i].CodeNumber); if (recordset[i].CodeNotation) code.push(recordset[i].CodeNotation); record.push(code.join('/')); record.push(moment(recordset[i].IssuedDate).isValid() ? moment(recordset[i].IssuedDate).format('DD/MM/YYYY') : ''); record.push(recordset[i].OrganName || '') record.push(recordset[i].Subject); record.push(recordset[i].PageAmount); record.push(recordset[i].Description); record.push(recordset[i].CreatedBy); tableBody.push(record); } var pdfContent = [ { text: 'Báo cáo văn bản', style: 'header' }, { table: { widths: [30, '*', 20, 20, 30, 50, 70, 50, 'auto', 20, '*', 50], body: tableBody }, layout: { fillColor: function (rowIndex, _node, _columnIndex) { return (rowIndex % 2 === 0) ? '#CCCCCC' : null; } } } ]; return createPDF('ReportDoc', pdfContent); } // Hàm tạo file PDF function createPDF(filename, pdfContent) { var fonts = { 'Roboto': { normal: path.join(exportPath, 'fonts', 'Roboto', 'Roboto-Regular.ttf'), bold: path.join(exportPath, 'fonts', 'Roboto', 'Roboto-Bold.ttf'), italics: path.join(exportPath, 'fonts', 'Roboto', 'Roboto-Italic.ttf'), bolditalics: path.join(exportPath, 'fonts', 'Roboto', 'Roboto-BoldItalic.ttf') }, 'Times New Roman': { normal: path.join(exportPath, 'fonts', 'Times New Roman', 'times.ttf'), bold: path.join(exportPath, 'fonts', 'Times New Roman', 'timesbd.ttf'), italics: path.join(exportPath, 'fonts', 'Times New Roman', 'timesi.ttf'), bolditalics: path.join(exportPath, 'fonts', 'Times New Roman', 'timesbi.ttf') } } var pdfPrinter = new PDFMake(fonts); var styles = { 'header': { fontSize: 26, alignment: 'center', bold: true, margin: [0, 0, 0, 20] }, 'tableHeader': { fontSize: 14, alignment: 'center', bold: true, fillColor: '#cce0ff', color: '#000000' } } var docDef = { pageSize: 'A4', pageOrientation: 'landscape', content: pdfContent, styles: styles, defaultStyle: { font: 'Times New Roman', fontSize: 14 } }; return new Promise(function(resolve, reject) { var pdfDoc = pdfPrinter.createPdfKitDocument(docDef); var fileName = `${filename}_${moment().format('YYYYMMDD-hhmmss')}.pdf`; pdfDoc.pipe(fs.createWriteStream(path.join(exportPath, fileName))) .on('finish', function () { resolve(fileName) }) .on('error', function (err) { reject(err) }); pdfDoc.end(); }) }