@measurequick/measurequick-report-generator 1.2.110 → 1.2.112
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/package.json
CHANGED
|
@@ -16,11 +16,9 @@ export async function getReport(payload) {
|
|
|
16
16
|
let b64 = payload.tests.length < 2 ? pdf : pdf2;
|
|
17
17
|
const pdfDoc = await PDFDocument.load(util._base64ToArrayBuffer(b64.base64));
|
|
18
18
|
const form = pdfDoc.getForm();
|
|
19
|
-
// TODO: Embed Proper Font From Local File -- Eliminate Remote Request
|
|
20
19
|
const fontBytes = await fetch('https://pdf-lib.js.org/assets/ubuntu/Ubuntu-R.ttf').then(res => res.arrayBuffer());
|
|
21
20
|
pdfDoc.registerFontkit(fontkit);
|
|
22
21
|
const font = await pdfDoc.embedFont(fontBytes);
|
|
23
|
-
|
|
24
22
|
let labels = ["iconRangeHigh", "iconRangeLow", "iconRangeNormal", "iconTesto", "iconCalculator", "iconFieldpiece",
|
|
25
23
|
"iconUei", "iconSporlanPro", "iconSporlanLegacy", "iconIconnect", "iconImanifold", "iconSensi", "iconDg8",
|
|
26
24
|
"iconBluflame", "iconRedfish510", "iconRedfish510333", "iconRedfish550", "iconDg1000", "iconTrueflow", "iconThumbprintRed", "iconThumbprintGreen", "iconThumbprintYellow", "whiteBox"
|
|
@@ -28,7 +26,6 @@ export async function getReport(payload) {
|
|
|
28
26
|
for (let label of labels) embeddedIcons[label] = await pdfDoc.embedPng(util._base64ToArrayBuffer(base64[label]));
|
|
29
27
|
const mqLogoBytes = util._base64ToArrayBuffer(base64.mqLogo);
|
|
30
28
|
const mqLogo = await pdfDoc.embedPng(mqLogoBytes);
|
|
31
|
-
|
|
32
29
|
// embed company logo and profile picture
|
|
33
30
|
let profileImage, companyImage;
|
|
34
31
|
let profileImageType = util.checkProfilePicture(payload.meta);
|
|
@@ -41,10 +38,8 @@ export async function getReport(payload) {
|
|
|
41
38
|
}
|
|
42
39
|
if (companyImageType == "jpg") companyImage = await pdfDoc.embedJpg(util._base64ToArrayBuffer(payload.meta.profile_settings.companyLogoBase64));
|
|
43
40
|
else if (companyImageType == "png") companyImage = await pdfDoc.embedPng(util._base64ToArrayBuffer(payload.meta.profile_settings.companyLogoBase64));
|
|
44
|
-
|
|
45
41
|
let pageHeader = payload.meta.report_mode == "heating" ? "Visual Inspection" : "Corrective Measures";
|
|
46
42
|
form.getTextField('Header').setText(pageHeader);
|
|
47
|
-
|
|
48
43
|
// print company logo and profile picture
|
|
49
44
|
if (profileImage && companyImage) {
|
|
50
45
|
form.getButton("ProfilePicture").setImage(profileImage);
|
|
@@ -60,7 +55,6 @@ export async function getReport(payload) {
|
|
|
60
55
|
if (companyImage) form.getButton("FullWidthLogo").setImage(companyImage);
|
|
61
56
|
else form.getButton("FullWidthLogo").setImage(mqLogo);
|
|
62
57
|
}
|
|
63
|
-
|
|
64
58
|
let scoreHeader = payload.tests.length > 1 ? "Test In Score" : "Your System Score";
|
|
65
59
|
form.getTextField("YourSystemScoreHeader").setText(scoreHeader);
|
|
66
60
|
let systemScorePercentage = payload.tests[0].testInfo.data.vitals_score ? +payload.tests[0].testInfo.data.vitals_score.toFixed(0) : 0;
|
|
@@ -71,7 +65,6 @@ export async function getReport(payload) {
|
|
|
71
65
|
systemScoreGrade = "";
|
|
72
66
|
} else systemScorePercentage += "%";
|
|
73
67
|
form.getTextField(`YourSystemScore${systemScoreColor}`).setText(`${systemScorePercentage} ${systemScoreGrade}`);
|
|
74
|
-
|
|
75
68
|
if (payload.tests.length > 1) {
|
|
76
69
|
form.getTextField("YourSystemScoreHeader2").setText("Test Out Score");
|
|
77
70
|
systemScorePercentage = payload.tests[1].testInfo.data.vitals_score ? +payload.tests[1].testInfo.data.vitals_score.toFixed(0) : 0;
|
|
@@ -83,14 +76,12 @@ export async function getReport(payload) {
|
|
|
83
76
|
} else systemScorePercentage += "%";
|
|
84
77
|
form.getTextField(`YourSystemScore${systemScoreColor}2`).setText(`${systemScorePercentage} ${systemScoreGrade}`);
|
|
85
78
|
}
|
|
86
|
-
|
|
87
79
|
form.getTextField(`Block1-Title`).setText(payload.system_data.title1);
|
|
88
80
|
for (let rowNum = 1; rowNum < 12; rowNum++) {
|
|
89
81
|
let measurement = payload.system_data[`block1`][rowNum - 1];
|
|
90
82
|
if (measurement) form.getTextField(`Block1-Row${rowNum}`).setText(`${measurement.value}`);
|
|
91
83
|
else break;
|
|
92
84
|
}
|
|
93
|
-
|
|
94
85
|
form.getTextField(`Block2-Title`).setText(payload.system_data.title2);
|
|
95
86
|
for (let rowNum = 1; rowNum < 12; rowNum++) {
|
|
96
87
|
let measurement = payload.system_data[`block2`][rowNum - 1];
|
|
@@ -102,33 +93,39 @@ export async function getReport(payload) {
|
|
|
102
93
|
if (icon) form.getButton(`Block2-Row${rowNum}-Col3`).setImage(icon);
|
|
103
94
|
} else break;
|
|
104
95
|
}
|
|
105
|
-
|
|
106
96
|
form.getTextField(`Block3-Title`).setText(payload.system_data.title3);
|
|
107
97
|
|
|
108
|
-
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
/** START CORRECTIVE ACTIONS **/
|
|
101
|
+
let header, text = "", col = 1,
|
|
102
|
+
maxWidth = 165, maxHeight = 362,
|
|
103
|
+
maxLines = 362 / font.heightAtSize(8);
|
|
109
104
|
for (let i = 0; i < payload.system_data.block3.length && col < 4; i++) {
|
|
110
105
|
let action = payload.system_data.block3[i];
|
|
111
106
|
if (header != action.ref) text += `\n${action.ref}\n`;
|
|
112
107
|
header = action.ref;
|
|
113
108
|
let textWidth = font.widthOfTextAtSize(action.label, 8);
|
|
114
|
-
let textHeight = font.heightAtSize(8);
|
|
115
109
|
let numLines = 1;
|
|
116
110
|
if (textWidth > maxWidth) {
|
|
117
111
|
numLines = textWidth / maxWidth;
|
|
118
112
|
let words = action.label.split(" ");
|
|
119
|
-
|
|
113
|
+
let line = "";
|
|
114
|
+
for (let w = 0; w < words.length; w++) {
|
|
115
|
+
if (font.widthOfTextAtSize(`${line} ${words[w]} `, 8) >= maxWidth) line = `${line}\n`;
|
|
116
|
+
else line = `${line} ${words[w]} `;
|
|
117
|
+
}
|
|
120
118
|
}
|
|
121
119
|
text += action.label + "\n";
|
|
122
|
-
if (
|
|
123
|
-
form.getTextField(`Text${col}`).setText(text);
|
|
124
|
-
col++;
|
|
125
|
-
}
|
|
120
|
+
if (currentHeight >= maxHeight) form.getTextField(`Text${col++}`).setText(text);
|
|
126
121
|
}
|
|
122
|
+
/** END CORRECTIVE ACTIONS **/
|
|
123
|
+
|
|
124
|
+
|
|
127
125
|
|
|
128
126
|
form.flatten();
|
|
129
127
|
return await pdfDoc.saveAsBase64({
|
|
130
128
|
dataUri: true
|
|
131
129
|
});
|
|
132
|
-
} catch (error) { console.log(error)
|
|
133
|
-
|
|
130
|
+
} catch (error) { console.log(error) }
|
|
134
131
|
}
|