diff --git a/print/common/css/layout.css b/print/common/css/layout.css
index b85589a81..3b2643dc9 100644
--- a/print/common/css/layout.css
+++ b/print/common/css/layout.css
@@ -157,22 +157,6 @@ table {
border-spacing: 0;
}
-/**
- * Prevent page break fix
- */
-tbody {
- page-break-inside: avoid;
- break-inside: avoid;
- display: block;
- width: 100%
-}
-
-thead, tbody tr {
- table-layout: fixed;
- display: table;
- width: 100%;
-}
-
.row-oriented, .column-oriented {
text-align: left;
width: 100%
@@ -188,6 +172,7 @@ thead, tbody tr {
}
.column-oriented thead {
+ display: table-header-group;
background-color: #e5e5e5
}
@@ -197,18 +182,24 @@ thead, tbody tr {
background-color: #e5e5e5
}
+.column-oriented tfoot {
+ display: table-row-group;
+ page-break-inside: avoid;
+ break-inside: avoid;
+}
+
.column-oriented tbody {
border-bottom: 1px solid #DDD;
}
-.column-oriented tfoot {
- border-top: 2px solid #808080;
-}
-
.column-oriented tfoot tr:first-child td {
padding-top: 20px !important;
}
+.column-oriented tfoot tr:first-child {
+ border-top: 2px solid #808080;
+}
+
.column-oriented .description {
font-size: 0.8em
}
diff --git a/print/common/css/report.css b/print/common/css/report.css
index 5b8a1539b..796b99c4f 100644
--- a/print/common/css/report.css
+++ b/print/common/css/report.css
@@ -3,12 +3,12 @@
*
*/
body {
- zoom: 0.53
+ zoom: 0.70;
}
.title {
margin-bottom: 20px;
font-weight: 100;
- margin-top: 0;
- font-size: 2em
+ font-size: 2em;
+ margin-top: 0
}
\ No newline at end of file
diff --git a/print/config/print.json b/print/config/print.json
index e1a93e152..5f4c0f7b8 100755
--- a/print/config/print.json
+++ b/print/config/print.json
@@ -13,10 +13,14 @@
},
"pdf": {
"format": "A4",
- "border": "1.5cm",
- "footer": {
- "height": "55px"
- }
+ "margin": {
+ "top": "1.5cm",
+ "right": "1.5cm",
+ "bottom": "3cm",
+ "left": "1.5cm"
+ },
+ "displayHeaderFooter": true,
+ "printBackground": true
},
"mysql": {
"host": "localhost",
diff --git a/print/core/components/report-footer/assets/css/style.css b/print/core/components/report-footer/assets/css/style.css
index e7ee162a8..e06e8c0ad 100644
--- a/print/core/components/report-footer/assets/css/style.css
+++ b/print/core/components/report-footer/assets/css/style.css
@@ -1,11 +1,13 @@
-footer {
+.footer {
font-family: "Roboto", "Helvetica", "Arial", sans-serif;
- font-size: 0.55em;
+ margin-left: 2cm;
+ margin-right: 2cm;
+ font-size: 10px;
color: #555;
zoom: 0.65
}
-footer, footer p {
+.footer p {
text-align: center
}
@@ -13,12 +15,20 @@ p.privacy {
font-size: 0.8em
}
-footer .page {
+.footer .page {
border-bottom: 2px solid #CCC;
padding-bottom: 2px
}
-footer .page > section {
+.page .centerText {
+ text-align: center
+}
+
+.page .pageCount {
+ text-align: right
+}
+
+.footer .page > div {
display: inline-block;
width: 33%
}
\ No newline at end of file
diff --git a/print/core/components/report-footer/locale/en.yml b/print/core/components/report-footer/locale/en.yml
index 404c7e7a4..3899f8b98 100644
--- a/print/core/components/report-footer/locale/en.yml
+++ b/print/core/components/report-footer/locale/en.yml
@@ -1,4 +1,4 @@
-numPages: Page {{page}} of {{pages}}
+numPages: Page of
law:
privacy: 'In compliance with the provisions of Organic Law 15/1999, on the
Protection of Personal Data, we inform you that the personal data you provide
diff --git a/print/core/components/report-footer/locale/es.yml b/print/core/components/report-footer/locale/es.yml
index 39dae8b58..985c1e17a 100644
--- a/print/core/components/report-footer/locale/es.yml
+++ b/print/core/components/report-footer/locale/es.yml
@@ -1,4 +1,4 @@
-numPages: Página {{page}} de {{pages}}
+numPages: Página de
law:
privacy: En cumplimiento de lo dispuesto en la Ley Orgánica 15/1999, de Protección
de Datos de Carácter Personal, le comunicamos que los datos personales que facilite
diff --git a/print/core/components/report-footer/locale/fr.yml b/print/core/components/report-footer/locale/fr.yml
index 8f2543640..861ee5684 100644
--- a/print/core/components/report-footer/locale/fr.yml
+++ b/print/core/components/report-footer/locale/fr.yml
@@ -1,4 +1,4 @@
-numPages: Page {{page}} de {{pages}}
+numPages: Page de
law:
privacy: Conformément aux dispositions de la loi organique 15/1999 sur la protection
des données personnelles, nous vous informons que les données personnelles que
diff --git a/print/core/components/report-footer/locale/pt.yml b/print/core/components/report-footer/locale/pt.yml
index 8b4987bb7..1c343bb4c 100644
--- a/print/core/components/report-footer/locale/pt.yml
+++ b/print/core/components/report-footer/locale/pt.yml
@@ -1,4 +1,4 @@
-numPages: Página {{page}} de {{pages}}
+numPages: Página de
law:
privacy: Em cumprimento do disposto na lei Orgânica 15/1999, de Protecção de Dados
de Carácter Pessoal, comunicamos que os dados pessoais que facilite se incluirão
diff --git a/print/core/components/report-footer/report-footer.html b/print/core/components/report-footer/report-footer.html
index 4e0b7e327..85395559b 100644
--- a/print/core/components/report-footer/report-footer.html
+++ b/print/core/components/report-footer/report-footer.html
@@ -1,9 +1,11 @@
-
+
+
+
diff --git a/print/core/components/report-header/assets/css/style.css b/print/core/components/report-header/assets/css/style.css
index cb8cd55c0..3ce75e792 100644
--- a/print/core/components/report-header/assets/css/style.css
+++ b/print/core/components/report-header/assets/css/style.css
@@ -4,7 +4,7 @@ header {
padding-bottom: 10px;
margin-bottom: 20px;
text-align: center;
- font-size: 0.55em;
+ font-size: 12px;
color: #555
}
diff --git a/print/core/report.js b/print/core/report.js
index db4c9f427..75eb66962 100644
--- a/print/core/report.js
+++ b/print/core/report.js
@@ -1,5 +1,5 @@
const fs = require('fs');
-const pdf = require('html-pdf');
+const puppeteer = require('puppeteer');
const path = require('path');
const config = require('./config');
const Component = require('./component');
@@ -20,18 +20,36 @@ class Report extends Component {
async toPdfStream() {
const template = await this.render();
- let options = config.pdf;
+ const defaultOptions = Object.assign({}, config.pdf);
const optionsPath = `${this.path}/options.json`;
const fullPath = path.resolve(__dirname, optionsPath);
+ let options = defaultOptions;
if (fs.existsSync(fullPath))
- options = Object.assign(options, require(optionsPath));
+ options = require(optionsPath);
- return new Promise(resolve => {
- pdf.create(template, options).toStream((err, stream) => {
- resolve(stream);
- });
- });
+ const browser = await puppeteer.launch({headless: true});
+ const page = await browser.newPage();
+ await page.setContent(template);
+
+ const element = await page.$('#pageFooter');
+
+ let footer = '\n';
+ if (element) {
+ footer = await page.evaluate(el => {
+ const html = el.innerHTML;
+ el.remove();
+ return html;
+ }, element);
+ }
+
+ options.headerTemplate = '\n';
+ options.footerTemplate = footer;
+
+ const buffer = await page.pdf(options);
+ await browser.close();
+
+ return buffer;
}
}
diff --git a/print/methods/report.js b/print/methods/report.js
index 348c05ff3..eea249a42 100644
--- a/print/methods/report.js
+++ b/print/methods/report.js
@@ -10,8 +10,7 @@ module.exports = app => {
res.setHeader('Content-type', 'application/pdf');
res.setHeader('Content-Disposition', `inline; filename="${fileName}"`);
-
- stream.pipe(res);
+ res.end(stream);
} catch (error) {
next(error);
}
diff --git a/print/templates/reports/campaign-metrics/campaign-metrics.html b/print/templates/reports/campaign-metrics/campaign-metrics.html
index d125ab7e2..536c7c5d2 100644
--- a/print/templates/reports/campaign-metrics/campaign-metrics.html
+++ b/print/templates/reports/campaign-metrics/campaign-metrics.html
@@ -6,11 +6,7 @@
-
+
-
+
|
diff --git a/print/templates/reports/claim-pickup-order/claim-pickup-order.html b/print/templates/reports/claim-pickup-order/claim-pickup-order.html
index 59647cf9a..2fdea5291 100644
--- a/print/templates/reports/claim-pickup-order/claim-pickup-order.html
+++ b/print/templates/reports/claim-pickup-order/claim-pickup-order.html
@@ -6,11 +6,7 @@
-
+
-
+
|
diff --git a/print/templates/reports/delivery-note/delivery-note.html b/print/templates/reports/delivery-note/delivery-note.html
index 913946196..5c8dac8eb 100644
--- a/print/templates/reports/delivery-note/delivery-note.html
+++ b/print/templates/reports/delivery-note/delivery-note.html
@@ -6,13 +6,9 @@
-
+
+
-
+
|
diff --git a/print/templates/reports/driver-route/driver-route.html b/print/templates/reports/driver-route/driver-route.html
index 919ed0679..549aac060 100644
--- a/print/templates/reports/driver-route/driver-route.html
+++ b/print/templates/reports/driver-route/driver-route.html
@@ -6,11 +6,7 @@
-
+
-
+
|
diff --git a/print/templates/reports/entry-order/entry-order.html b/print/templates/reports/entry-order/entry-order.html
index 3c1cdbd33..cb69ecee9 100644
--- a/print/templates/reports/entry-order/entry-order.html
+++ b/print/templates/reports/entry-order/entry-order.html
@@ -6,13 +6,9 @@
-
+
+
-
+
|
diff --git a/print/templates/reports/item-label/options.json b/print/templates/reports/item-label/options.json
index 6b00b0443..98c5788b1 100644
--- a/print/templates/reports/item-label/options.json
+++ b/print/templates/reports/item-label/options.json
@@ -1,10 +1,11 @@
{
- "format": "A4",
- "orientation": "landscape",
"width": "10.4cm",
"height": "4.8cm",
- "border": "0cm",
- "footer": {
- "height": "0"
- }
+ "margin": {
+ "top": "0cm",
+ "right": "0cm",
+ "bottom": "0cm",
+ "left": "0cm"
+ },
+ "printBackground": true
}
\ No newline at end of file
diff --git a/print/templates/reports/letter-debtor/letter-debtor.html b/print/templates/reports/letter-debtor/letter-debtor.html
index 81a001765..88bf15bdb 100644
--- a/print/templates/reports/letter-debtor/letter-debtor.html
+++ b/print/templates/reports/letter-debtor/letter-debtor.html
@@ -6,11 +6,7 @@
-
+
@@ -74,24 +70,23 @@
|
|
- Total {{getTotalDebtOut()}} |
- {{getTotalDebtIn()}} |
- {{totalBalance}} |
+
+ Total
+ {{getTotalDebtOut() | currency('EUR', $i18n.locale)}}
+ |
+ {{getTotalDebtIn() | currency('EUR', $i18n.locale)}} |
+ {{totalBalance | currency('EUR', $i18n.locale)}} |
-
+
|
diff --git a/print/templates/reports/receipt/receipt.html b/print/templates/reports/receipt/receipt.html
index 9a4e1964c..3371e6871 100644
--- a/print/templates/reports/receipt/receipt.html
+++ b/print/templates/reports/receipt/receipt.html
@@ -6,11 +6,7 @@
-
+
-
+
|
diff --git a/print/templates/reports/sepa-core/sepa-core.html b/print/templates/reports/sepa-core/sepa-core.html
index d14a3ce6e..300cf976f 100644
--- a/print/templates/reports/sepa-core/sepa-core.html
+++ b/print/templates/reports/sepa-core/sepa-core.html
@@ -6,11 +6,7 @@
-
+
-
+
|