@measurequick/measurequick-report-generator 1.0.95 → 1.0.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/graphics.js +2 -0
- package/index.js +2 -0
- package/mq-ptcs-report-generator.js +7 -4
- package/mq-standard-report-generator.js +47 -0
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -3,6 +3,7 @@ import * as mqSystemVitalsReportGenerator from "./mq-system-vitals-report-genera
|
|
|
3
3
|
import * as mqSystemVitalsHeatingReportGenerator from "./mq-system-vitals-heating-report-generator.js";
|
|
4
4
|
import * as mqPtcsReportGenerator from "./mq-ptcs-report-generator.js";
|
|
5
5
|
import * as pdfSigner from "./sign-pdf.js";
|
|
6
|
+
import * as mqStandardReportGenerator from "./mq-standard-report-generator.js";
|
|
6
7
|
|
|
7
8
|
export function generateReport(reportType, payload) {
|
|
8
9
|
if (reportType == "mqStandard") reportType = "mqCooling";
|
|
@@ -12,6 +13,7 @@ export function generateReport(reportType, payload) {
|
|
|
12
13
|
case "mqSystemVitals": return mqSystemVitalsReportGenerator.generateReport(payload);
|
|
13
14
|
case "mqSystemVitalsHeating": return mqSystemVitalsHeatingReportGenerator.generateReport(payload);
|
|
14
15
|
case "PTCS": return mqPtcsReportGenerator.generateReport(payload);
|
|
16
|
+
case "mQ Standard": return mqStandardReportGenerator.generateReport(payload);
|
|
15
17
|
default: return false;
|
|
16
18
|
}
|
|
17
19
|
}
|
|
@@ -6,8 +6,10 @@ export async function generateReport(payload) {
|
|
|
6
6
|
const pdfDoc = await PDFDocument.load(formPdfBytes);
|
|
7
7
|
const photoBytesStripHeat = _base64ToArrayBuffer(payload.images.imageStripHeatBase64);
|
|
8
8
|
const photoBytesHpThermostat = _base64ToArrayBuffer(payload.images.imageHpThermostatBase64);
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
var imageStripHeat;
|
|
10
|
+
var imageHpThermostat;
|
|
11
|
+
if (photoBytesStripHeat) imageStripHeat = await pdfDoc.embedJpg(photoBytesStripHeat);
|
|
12
|
+
if (photoBytesHpThermostat) imageHpThermostat = await pdfDoc.embedJpg(photoBytesHpThermostat);
|
|
11
13
|
const form = pdfDoc.getForm();
|
|
12
14
|
Object.keys(payload.textFields).forEach(fieldKey => {
|
|
13
15
|
if (payload.textFields[fieldKey]) form.getTextField(fieldKey).setText(`${payload.textFields[fieldKey]}`);
|
|
@@ -15,14 +17,15 @@ export async function generateReport(payload) {
|
|
|
15
17
|
Object.keys(payload.checkFields).forEach(fieldKey => {
|
|
16
18
|
if (payload.checkFields[fieldKey]) form.getCheckBox(`${payload.checkFields[fieldKey]}`).check();
|
|
17
19
|
});
|
|
18
|
-
if (
|
|
19
|
-
if (
|
|
20
|
+
if (imageStripHeat) form.getButton("customImage1").setImage(imageStripHeat);
|
|
21
|
+
if (imageHpThermostat) form.getButton("customImage2").setImage(imageHpThermostat);
|
|
20
22
|
form.flatten();
|
|
21
23
|
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
22
24
|
return pdfBase64;
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
function _base64ToArrayBuffer(base64) {
|
|
28
|
+
if (!base64) return "";
|
|
26
29
|
base64 = base64.replace(/^[^,]+,/, '').replace(/\s/g, '');
|
|
27
30
|
var binary_string = window.atob(base64);
|
|
28
31
|
var len = binary_string.length;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PDFDocument } from 'pdf-lib';
|
|
2
|
+
import * as base64 from './graphics.js';
|
|
3
|
+
|
|
4
|
+
export async function generateReport(payload) {
|
|
5
|
+
const formPdfBytes = _base64ToArrayBuffer(base64.mqStandardPdfTemplate);
|
|
6
|
+
const pdfDoc = await PDFDocument.load(formPdfBytes);
|
|
7
|
+
const photoBytes = _base64ToArrayBuffer(base64);
|
|
8
|
+
const image = await pdfDoc.embedJpg(photoBytes);
|
|
9
|
+
const form = pdfDoc.getForm();
|
|
10
|
+
|
|
11
|
+
// cover page
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
// vitals page
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// score page
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
// equipment information page
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
// system review page
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
// measurement details page
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
// photos page
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
form.flatten();
|
|
33
|
+
const pdfBase64 = await pdfDoc.saveAsBase64({ dataUri: true });
|
|
34
|
+
return pdfBase64;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _base64ToArrayBuffer(base64) {
|
|
38
|
+
if (!base64) return "";
|
|
39
|
+
base64 = base64.replace(/^[^,]+,/, '').replace(/\s/g, '');
|
|
40
|
+
var binary_string = window.atob(base64);
|
|
41
|
+
var len = binary_string.length;
|
|
42
|
+
var bytes = new Uint8Array(len);
|
|
43
|
+
for (var i = 0; i < len; i++) {
|
|
44
|
+
bytes[i] = binary_string.charCodeAt(i);
|
|
45
|
+
}
|
|
46
|
+
return bytes.buffer;
|
|
47
|
+
}
|