diff --git a/src/lib/pdf/pdfDatenblattVerbrauchsausweisGewerbe.ts b/src/lib/pdf/pdfDatenblattVerbrauchsausweisGewerbe.ts
index 37ead769..b363db7d 100644
--- a/src/lib/pdf/pdfDatenblattVerbrauchsausweisGewerbe.ts
+++ b/src/lib/pdf/pdfDatenblattVerbrauchsausweisGewerbe.ts
@@ -12,7 +12,7 @@ import { PERSISTENT_DIR } from "#lib/server/constants.js";
/* -------------------------------- Pdf Tools ------------------------------- */
-export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient, bilder: UploadedGebaeudeBild[]) {
+export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient, bilder: BildClient[]) {
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/Leerseite_Datenblatt.pdf", import.meta.url), "base64");
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
const page3 = copyPage(pdf.getPages()[0]);
@@ -365,8 +365,6 @@ export async function pdfDatenblattVerbrauchsausweisGewerbe(ausweis: Verbrauchsa
if (bild.uid) {
image = `
`
- } else if (bild.data) {
- image = `
`
}
if (images.length > 0) {
diff --git a/src/lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.ts b/src/lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.ts
index ba73e5ea..21daada6 100644
--- a/src/lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.ts
+++ b/src/lib/pdf/pdfDatenblattVerbrauchsausweisWohnen.ts
@@ -12,7 +12,7 @@ import { PERSISTENT_DIR } from "#lib/server/constants.js";
/* -------------------------------- Pdf Tools ------------------------------- */
-export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient, bilder: UploadedGebaeudeBild[]) {
+export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, benutzer: BenutzerClient, bilder: BildClient[]) {
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/Leerseite_Datenblatt.pdf", import.meta.url), "base64");
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
const page3 = copyPage(pdf.getPages()[0]);
@@ -308,8 +308,6 @@ export async function pdfDatenblattVerbrauchsausweisWohnen(ausweis: Verbrauchsau
if (bild.uid) {
image = `
`
- } else if (bild.data) {
- image = `
`
}
if (images.length > 0) {
diff --git a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
index 58677b90..bb41a6cb 100644
--- a/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
+++ b/src/lib/pdf/pdfVerbrauchsausweisGewerbe.ts
@@ -1,4 +1,4 @@
-import { AufnahmeClient, BenutzerClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
+import { AufnahmeClient, BenutzerClient, BildClient, ObjektClient, UploadedGebaeudeBild, VerbrauchsausweisGewerbeClient } from "#components/Ausweis/types.js";
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016 } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016.js";
import { getEmpfehlungen } from "#lib/XML/getEmpfehlungen.js";
import { Enums } from "#lib/server/prisma.js";
@@ -8,9 +8,11 @@ import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib"
import { addCheckMark } from "./utils/checkbox.js";
import { addText } from "./utils/text.js";
import { addAnsichtsausweisLabel, addDatumGEG } from "./utils/helpers.js";
+import { PERSISTENT_DIR } from "#lib/server/constants.js";
+import { fileURLToPath } from "url";
-export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: UploadedGebaeudeBild[], user: BenutzerClient) {
+export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient) {
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/GEG24_Nichtwohngebaeude.pdf", import.meta.url), "base64");
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
const pages = pdf.getPages()
@@ -137,20 +139,15 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
- const gebaeudeBild = bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
+ const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
- if (gebaeudeBild) {
- let image: PDFImage | null;
- try {
- image = await pdf.embedJpg(gebaeudeBild.data)
- } catch(e) {
- try {
- image = await pdf.embedPng(gebaeudeBild.data)
- } catch(e) {
- image = null;
- }
- }
- if (image) {
+ if (bild) {
+ const path = `${PERSISTENT_DIR}/images/${bild.uid}.jpg`;
+
+ if (fs.existsSync(path)) {
+ const file = fs.readFileSync(fileURLToPath(new URL(path, import.meta.url)))
+ let image: PDFImage;
+ image = await pdf.embedJpg(file)
pages[0].drawImage(image, {
x: 460.5,
y: height - 289,
diff --git a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
index 5f77f8bc..c3368939 100644
--- a/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
+++ b/src/lib/pdf/pdfVerbrauchsausweisWohnen.ts
@@ -48,40 +48,122 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
}
}
- const gebaeudetyp = fillFormField("gebaeudetyp", aufnahme.gebaeudetyp || "")
+ pages[0].drawText(aufnahme.gebaeudetyp || "", {
+ x: 211,
+ y: height - 166,
+ size: 10
+ })
- const adresse = fillFormField("adresse", objekt.adresse || "")
-
+ pages[0].drawText(objekt.adresse || "", {
+ x: 211,
+ y: height - 194,
+ size: 10
+ })
- const gebaeudeteil = fillFormField("gebaeudeteil", aufnahme.gebaeudeteil || "")
+ pages[0].drawText(aufnahme.gebaeudeteil || "", {
+ x: 211,
+ y: height - 214.5,
+ size: 10
+ })
- const baujahr_gebaeude = fillFormField("baujahr_gebaeude", aufnahme.baujahr_gebaeude?.toString())
+ pages[0].drawText(aufnahme.baujahr_gebaeude?.toString() || "", {
+ x: 211,
+ y: height - 229.5,
+ size: 10
+ })
- const baujahr_heizung = fillFormField("baujahr_heizung", aufnahme.baujahr_heizung?.toString())
+ pages[0].drawText(aufnahme.baujahr_heizung?.toString() || "", {
+ x: 211,
+ y: height - 250,
+ size: 10
+ })
- const einheiten = fillFormField("einheiten", (aufnahme.einheiten || 1).toString())
+ pages[0].drawText(aufnahme.einheiten?.toString() || "", {
+ x: 211,
+ y: height - 271.5,
+ size: 10
+ })
- const nutzflaeche = fillFormField("nutzflaeche", `${berechnungen?.energetischeNutzflaeche?.toString()}m²`)
+ pages[0].drawText(aufnahme.nutzflaeche?.toString() || "", {
+ x: 211,
+ y: height - 285,
+ size: 10
+ })
- fillFormField("energietraeger_heizung", `${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`)
+ pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, {
+ x: 211,
+ y: height - 298.5,
+ size: 10
+ })
if (ausweis.warmwasser_enthalten) {
- fillFormField("energietraeger_warmwasser", `${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`)
+ pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, {
+ x: 211,
+ y: height - 312,
+ size: 10
+ })
}
- if (aufnahme.durchlauf_erhitzer && !ausweis.warmwasser_enthalten) {
- fillFormField("energietraeger_warmwasser", "Strommix");
+
+ const erneuerbareEnergienVerwendung = []
+
+ if (ausweis.alternative_heizung) {
+ erneuerbareEnergienVerwendung.push("Heizung")
}
- toggleCheck("fensterlueftung", aufnahme.lueftung == Enums.Lueftungskonzept.Fensterlueftung)
- toggleCheck("schachtlueftung", aufnahme.lueftung == Enums.Lueftungskonzept.Schachtlueftung)
- toggleCheck("lueftungsanlage_ohne_waermerueckgewinnung", aufnahme.lueftung == Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung)
- toggleCheck("lueftungsanlage_waermerueckgewinnung", aufnahme.lueftung == Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung)
+ if (ausweis.alternative_kuehlung) {
+ erneuerbareEnergienVerwendung.push("Kühlung")
+ }
- toggleCheck("anlass_neubau", ausweis.ausstellgrund == "Neubau")
- toggleCheck("anlass_vermietung", ausweis.ausstellgrund == "Vermietung" || ausweis.ausstellgrund == "Verkauf")
- toggleCheck("anlass_modernisierung", ausweis.ausstellgrund == "Modernisierung")
- toggleCheck("anlass_sonstiges", ausweis.ausstellgrund == "Sonstiges")
+ if (ausweis.alternative_lueftung) {
+ erneuerbareEnergienVerwendung.push("Lüftung")
+ }
+
+ if (ausweis.alternative_warmwasser) {
+ erneuerbareEnergienVerwendung.push("Warmwasser")
+ }
+
+ pages[0].drawText(erneuerbareEnergienVerwendung.join(", "), {
+ x: 358,
+ y: height - 325,
+ size: 8
+ })
+
+ if (ausweis.warmwasser_enthalten) {
+ pages[0].drawText(`${aufnahme.brennstoff_1}, ${aufnahme.brennstoff_2 || ""}`, {
+ x: 211,
+ y: height - 299,
+ size: 10
+ })
+ }
+
+
+ if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) {
+ addCheckMark(pages[0], 213, height - 347)
+ } else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
+ addCheckMark(pages[0], 213, height - 358)
+ } else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
+ addCheckMark(pages[0], 355, height - 347)
+ } else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
+ addCheckMark(pages[0], 355, height - 358)
+ }
+
+ // Kühlung
+ if (aufnahme.kuehlung) {
+ addCheckMark(pages[0], 213, height - 375.5)
+ } else {
+ addCheckMark(pages[0], 355, height - 386.5)
+ }
+
+ if (ausweis.ausstellgrund === Enums.Ausstellgrund.Neubau) {
+ addCheckMark(pages[0], 213, height - 419)
+ } else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung || ausweis.ausstellgrund === Enums.Ausstellgrund.Verkauf) {
+ addCheckMark(pages[0], 213, height - 430)
+ } else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Modernisierung) {
+ addCheckMark(pages[0], 344.5, height - 419)
+ } else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Sonstiges) {
+ addCheckMark(pages[0], 463, height - 419)
+ }
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
@@ -150,35 +232,6 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
height: 50
})
- const erneuerbareEnergienVerwendung = []
-
- if (ausweis.alternative_heizung) {
- erneuerbareEnergienVerwendung.push("Heizung")
- }
-
- if (ausweis.alternative_kuehlung) {
- erneuerbareEnergienVerwendung.push("Kühlung")
- }
-
- if (ausweis.alternative_lueftung) {
- erneuerbareEnergienVerwendung.push("Lüftung")
- }
-
- if (ausweis.alternative_warmwasser) {
- erneuerbareEnergienVerwendung.push("Warmwasser")
- }
-
- pages[0].drawText(erneuerbareEnergienVerwendung.join(", "), {
- x: 358,
- y: height - 337,
- size: 8
- })
-
- // Kühlung
- if (aufnahme.kuehlung) {
- addCheckMark(pages[0], 354, height - 376.5)
- }
-
/* -------------------------------- Seite 2 -------------------------------- */
diff --git a/src/lib/server/ausweis.ts b/src/lib/server/ausweis.ts
index a06672d0..ced5d156 100644
--- a/src/lib/server/ausweis.ts
+++ b/src/lib/server/ausweis.ts
@@ -31,9 +31,9 @@ export async function getAnsichtsausweis(ausweis: VerbrauchsausweisWohnenClient
}
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
- return await pdfVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, bilder, user)
+ return await pdfVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, bilder, user)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
- return await pdfVerbrauchsausweisGewerbe(ausweis, aufnahme, objekt, bilder, user)
+ return await pdfVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, bilder, user)
}
return null
@@ -49,9 +49,9 @@ export async function getDatenblatt(ausweis: VerbrauchsausweisWohnenClient | Ver
}
if (ausweisart === Enums.Ausweisart.VerbrauchsausweisWohnen) {
- return await pdfDatenblattVerbrauchsausweisWohnen(ausweis, aufnahme, objekt, bilder, user)
+ return await pdfDatenblattVerbrauchsausweisWohnen(ausweis as VerbrauchsausweisWohnenClient, aufnahme, objekt, user, bilder)
} else if (ausweisart === Enums.Ausweisart.VerbrauchsausweisGewerbe) {
- return await pdfDatenblattVerbrauchsausweisGewerbe(ausweis, aufnahme, objekt, bilder, user)
+ return await pdfDatenblattVerbrauchsausweisGewerbe(ausweis as VerbrauchsausweisGewerbeClient, aufnahme, objekt, user, bilder)
}
return null