Buchstabe hervorheben

This commit is contained in:
Moritz Utcke
2025-02-18 22:17:44 +11:00
parent feb3145169
commit c3da028ed7
2 changed files with 44 additions and 20 deletions

View File

@@ -6,6 +6,7 @@ import * as fs from "fs"
import moment from "moment";
import { PDFDocument, PDFFont, PDFImage, PDFPage, RotationTypes, StandardFonts, TextAlignment } from "pdf-lib";
import { addCheckMark } from "./utils/checkbox.js";
import { addText } from "./utils/text.js";
/* -------------------------------- Pdf Tools ------------------------------- */
@@ -46,7 +47,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
const gebaeudetyp = fillFormField("gebaeudetyp", aufnahme.gebaeudetyp || "")
const adresse = fillFormField("adresse", objekt.adresse)
const adresse = fillFormField("adresse", objekt.adresse || "")
const gebaeudeteil = fillFormField("gebaeudeteil", aufnahme.gebaeudeteil || "")
@@ -55,7 +56,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
const baujahr_heizung = fillFormField("baujahr_heizung", aufnahme.baujahr_heizung?.toString())
const einheiten = fillFormField("einheiten", aufnahme.einheiten?.toString())
const einheiten = fillFormField("einheiten", (aufnahme.einheiten || 1).toString())
const nutzflaeche = fillFormField("nutzflaeche", `${aufnahme.nutzflaeche?.toString()}`)
@@ -153,6 +154,22 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
const pfeilWidth = 20
const margin = 5;
// Buchstaben hinzufügen und hervorheben
const klassen: [string, number][] = [
["A+", 94],
["A", 136.5],
["B", 175],
["C", 215],
["D", 264],
["E", 320],
["F", 382],
["G", 447],
["H", 495],
]
for (const klasse of klassen) {
addText(page, klasse[0], klasse[1], height - 227, 12, berechnungen?.energieEffizienzKlasse === klasse[0] ? bold : font)
}
page.drawImage(pfeilNachUnten, {
x: endenergieverbrauchTranslationX,
y: height - 212,
@@ -319,11 +336,11 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1,
aufnahme.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1).toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
"0",
Math.round(berechnungen?.energieVerbrauchHeizung_1).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
} else {
@@ -331,11 +348,11 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_1,
aufnahme.brennstoff_1 || "",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_1).toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
}
@@ -344,11 +361,11 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
addVerbrauch(
moment(ausweis.startdatum).format("MM.YYYY"),
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
aufnahme.brennstoff_2,
aufnahme.brennstoff_2 || "",
berechnungen?.brennstoff_2.primaerenergiefaktor.toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_2).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_2).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_2).toString(),
Math.round(berechnungen?.energieVerbrauchGesamt_2 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_2 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchHeizung_2 || 0).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
}
@@ -363,8 +380,8 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
"Warmwasserzuschlag",
berechnungen?.primaerfaktorww.toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
"0",
"0"
);
@@ -381,9 +398,9 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
"Leerstandszuschlag",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.leerstandsZuschlagHeizung + berechnungen?.leerstandsZuschlagWarmwasser).toString(),
Math.round(berechnungen?.leerstandsZuschlagWarmwasser).toString(),
Math.round(berechnungen?.leerstandsZuschlagHeizung).toString(),
Math.round((berechnungen?.leerstandsZuschlagHeizung || 0) + (berechnungen?.leerstandsZuschlagWarmwasser || 0)).toString(),
Math.round((berechnungen?.leerstandsZuschlagWarmwasser || 0)).toString(),
Math.round((berechnungen?.leerstandsZuschlagHeizung || 0)).toString(),
berechnungen?.durchschnittsKlimafaktor.toString()
);
} else {
@@ -392,7 +409,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
"Leerstandszuschlag",
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
Math.round(berechnungen?.leerstandsZuschlagHeizung + berechnungen?.leerstandsZuschlagWarmwasser).toString(),
Math.round((berechnungen?.leerstandsZuschlagHeizung || 0) + (berechnungen?.leerstandsZuschlagWarmwasser || 0)).toString(),
"0",
"0",
berechnungen?.durchschnittsKlimafaktor.toString()
@@ -411,7 +428,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
"Leerstandszuschlag",
berechnungen?.primaerfaktorww.toString(),
Math.round(berechnungen?.kuehlungsZuschlag).toString(),
Math.round(berechnungen?.kuehlungsZuschlag || 0).toString(),
"0",
"0",
"1.8"

View File

@@ -0,0 +1,7 @@
import { PDFField, PDFFont, PDFPage } from "pdf-lib";
export function addText(page: PDFPage, text: string, x: number, y: number, size: number, font: PDFFont) {
page.drawText(text, {
font, x, y, size
})
}