PDF gefixt !!
This commit is contained in:
@@ -4,14 +4,12 @@ import { Enums } from "#lib/server/prisma.js";
|
|||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib";
|
import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib";
|
||||||
import { addCheckMark } from "./utils/checkbox.js";
|
|
||||||
import { addText } from "./utils/text.js";
|
import { addText } from "./utils/text.js";
|
||||||
import { addAnsichtsausweisLabel, addDatumGEG, addRegistriernummer } from "./utils/helpers.js";
|
import { addAnsichtsausweisLabel, addDatumGEG, addRegistriernummer } from "./utils/helpers.js";
|
||||||
import { getS3File } from "#lib/s3.js";
|
import { getS3File } from "#lib/s3.js";
|
||||||
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Server.js";
|
import { endEnergieVerbrauchVerbrauchsausweisGewerbe_2016_Server } from "#lib/Berechnungen/VerbrauchsausweisGewerbe/VerbrauchsausweisGewerbe_2016_Server.js";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, vorschau = true) {
|
export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewerbeClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, vorschau = true) {
|
||||||
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/GEG24_Nichtwohngebaeude.pdf", import.meta.url), "base64");
|
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/GEG24_Nichtwohngebaeude.pdf", import.meta.url), "base64");
|
||||||
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
|
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
|
||||||
@@ -104,7 +102,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
})
|
})
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten) {
|
if (ausweis.warmwasser_enthalten) {
|
||||||
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
pages[3].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
||||||
x: 211,
|
x: 211,
|
||||||
y: height - 299,
|
y: height - 299,
|
||||||
size: 10
|
size: 10
|
||||||
@@ -113,30 +111,73 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
|
|
||||||
|
|
||||||
if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) {
|
if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) {
|
||||||
addCheckMark(pages[0], 213, height - 334)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 342,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
|
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
|
||||||
addCheckMark(pages[0], 213, height - 345)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 353,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
|
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
|
||||||
addCheckMark(pages[0], 355, height - 334)
|
pages[0].drawText("x", {
|
||||||
|
x: 356,
|
||||||
|
y: height - 342,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
|
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
|
||||||
addCheckMark(pages[0], 355, height - 345)
|
pages[0].drawText("x", {
|
||||||
|
x: 356,
|
||||||
|
y: height - 353,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kühlung
|
// Kühlung
|
||||||
if (aufnahme.kuehlung === "1") {
|
if (aufnahme.kuehlung === "1" && aufnahme.kuehlung !== null) {
|
||||||
addCheckMark(pages[0], 213, height - 362.5)
|
pages[0].drawText("x", {
|
||||||
} else {
|
x: 356,
|
||||||
addCheckMark(pages[0], 355, height - 373.5)
|
y: height - 370.5,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.ausstellgrund === Enums.Ausstellgrund.Neubau) {
|
if (ausweis.ausstellgrund === Enums.Ausstellgrund.Neubau) {
|
||||||
addCheckMark(pages[0], 213, height - 406)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 414,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung) {
|
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung) {
|
||||||
addCheckMark(pages[0], 213, height - 417)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 425,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Modernisierung) {
|
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Modernisierung) {
|
||||||
addCheckMark(pages[0], 344.5, height - 406)
|
pages[0].drawText("x", {
|
||||||
|
x: 345.5,
|
||||||
|
y: height - 414,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Sonstiges) {
|
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Sonstiges) {
|
||||||
addCheckMark(pages[0], 463, height - 417)
|
pages[0].drawText("x", {
|
||||||
|
x: 464,
|
||||||
|
y: height - 425,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
// Aushangpflicht
|
// Aushangpflicht
|
||||||
// addCheckMark(pages[0], 463, height - 406)
|
// addCheckMark(pages[0], 463, height - 406)
|
||||||
@@ -162,11 +203,21 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Checkmark Angabe energetische Qualität des Gebäudes.
|
// Checkmark Verbrauchsausweis.
|
||||||
addCheckMark(pages[0], 40, height - 550)
|
pages[0].drawText("x", {
|
||||||
|
x: 41,
|
||||||
|
y: height - 558,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
|
|
||||||
// Datenerhebung durch Eigentümer
|
// Datenerhebung durch Eigentümer
|
||||||
addCheckMark(pages[0], 295, height - 580)
|
pages[0].drawText("x", {
|
||||||
|
x: 296.5,
|
||||||
|
y: height - 587.5,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
|
|
||||||
// Ausstellungsdatum
|
// Ausstellungsdatum
|
||||||
pages[0].drawText(moment().format("DD.MM.YYYY"), {
|
pages[0].drawText(moment().format("DD.MM.YYYY"), {
|
||||||
@@ -187,7 +238,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
// Stempel und Unterschrift
|
// Stempel und Unterschrift
|
||||||
if (ausweis.ausgestellt || !vorschau) {
|
if (ausweis.ausgestellt || !vorschau) {
|
||||||
const stempel = await pdf.embedPng(fs.readFileSync(new URL("../../../public/pdf/images/stempel-unterschrift.png", import.meta.url), "base64"));
|
const stempel = await pdf.embedPng(fs.readFileSync(new URL("../../../public/pdf/images/stempel-unterschrift.png", import.meta.url), "base64"));
|
||||||
const stempelHeight = 60
|
const stempelHeight = 65
|
||||||
|
|
||||||
pages[0].drawImage(stempel, {
|
pages[0].drawImage(stempel, {
|
||||||
x: 450,
|
x: 450,
|
||||||
@@ -426,35 +477,75 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
addEnergieverbrauchSkalaPfeile(pages[2])
|
addEnergieverbrauchSkalaPfeile(pages[2])
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten) {
|
if (ausweis.warmwasser_enthalten) {
|
||||||
addCheckMark(pages[2], 41, height - 293)
|
pages[2].drawText("x", {
|
||||||
|
x: 42,
|
||||||
|
y: height - 301,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aufnahme.kuehlung === "1") {
|
if (ausweis.kuehlung_enthalten) {
|
||||||
addCheckMark(pages[2], 41, height - 305)
|
pages[2].drawText("x", {
|
||||||
|
x: 42,
|
||||||
|
y: height - 313,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.stromverbrauch_enthaelt_heizung) {
|
if (ausweis.stromverbrauch_enthaelt_heizung) {
|
||||||
addCheckMark(pages[2], 41, height - 456)
|
pages[2].drawText("x", {
|
||||||
|
x: 42,
|
||||||
|
y: height - 464,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.stromverbrauch_enthaelt_warmwasser) {
|
if (ausweis.stromverbrauch_enthaelt_warmwasser) {
|
||||||
addCheckMark(pages[2], 131, height - 456)
|
pages[2].drawText("x", {
|
||||||
|
x: 132,
|
||||||
|
y: height - 464,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.stromverbrauch_enthaelt_lueftung) {
|
if (ausweis.stromverbrauch_enthaelt_lueftung) {
|
||||||
addCheckMark(pages[2], 218, height - 456)
|
pages[2].drawText("x", {
|
||||||
|
x: 219,
|
||||||
|
y: height - 464,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.stromverbrauch_enthaelt_beleuchtung) {
|
if (ausweis.stromverbrauch_enthaelt_beleuchtung) {
|
||||||
addCheckMark(pages[2], 281, height - 456)
|
pages[2].drawText("x", {
|
||||||
|
x: 282,
|
||||||
|
y: height - 464,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.stromverbrauch_enthaelt_kuehlung) {
|
if (ausweis.stromverbrauch_enthaelt_kuehlung) {
|
||||||
addCheckMark(pages[2], 422, height - 456)
|
pages[2].drawText("x", {
|
||||||
|
x: 423,
|
||||||
|
y: height - 464,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ausweis.stromverbrauch_enthaelt_sonstige) {
|
if (ausweis.stromverbrauch_enthaelt_sonstige) {
|
||||||
addCheckMark(pages[2], 492, height - 456)
|
pages[2].drawText("x", {
|
||||||
|
x: 493,
|
||||||
|
y: height - 464,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
addText(pages[2], berechnungen?.primaerEnergieVerbrauchGesamt.toString() || "", 475, height - 637, 10, font)
|
addText(pages[2], berechnungen?.primaerEnergieVerbrauchGesamt.toString() || "", 475, height - 637, 10, font)
|
||||||
@@ -548,7 +639,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
|
|
||||||
const addVerbrauch = addVerbrauchGenerator();
|
const addVerbrauch = addVerbrauchGenerator();
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten) {
|
if (!ausweis.warmwasser_enthalten) {
|
||||||
// Mit Warmwasserzuschlag
|
// Mit Warmwasserzuschlag
|
||||||
addVerbrauch(
|
addVerbrauch(
|
||||||
moment(ausweis.startdatum).format("MM.YYYY"),
|
moment(ausweis.startdatum).format("MM.YYYY"),
|
||||||
@@ -556,7 +647,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
ausweis.brennstoff_1 || "",
|
ausweis.brennstoff_1 || "",
|
||||||
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
|
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
|
||||||
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
|
Math.round(berechnungen?.energieVerbrauchGesamt_1 || 0).toString(),
|
||||||
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
|
"0",
|
||||||
berechnungen?.endEnergieVerbrauchKuehlungsZuschlag_1,
|
berechnungen?.endEnergieVerbrauchKuehlungsZuschlag_1,
|
||||||
Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(),
|
Math.round(berechnungen?.energieVerbrauchHeizung_1 || 0).toString(),
|
||||||
berechnungen?.durchschnittsKlimafaktor.toString(),
|
berechnungen?.durchschnittsKlimafaktor.toString(),
|
||||||
@@ -595,22 +686,22 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
|
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
// if (!ausweis.warmwasser_enthalten) {
|
if (!ausweis.warmwasser_enthalten) {
|
||||||
// /**
|
/**
|
||||||
// * Dezentrale Warmwasserversorgung - Pauschale Erhöhung um 20kWh/m²
|
* Dezentrale Warmwasserversorgung - Pauschale Erhöhung um 20kWh/m²
|
||||||
// * @link https://www.bundesanzeiger.de/pub/publication/MRYM4nI84Sdlr0EIvvW?2
|
* @link https://www.bundesanzeiger.de/pub/publication/MRYM4nI84Sdlr0EIvvW?2
|
||||||
// */
|
*/
|
||||||
// addVerbrauch(
|
addVerbrauch(
|
||||||
// moment(ausweis.startdatum).format("MM.YYYY"),
|
moment(ausweis.startdatum).format("MM.YYYY"),
|
||||||
// moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
|
moment(ausweis.startdatum).add(3, "years").format("MM.YYYY"),
|
||||||
// "Warmwasserzuschlag",
|
"Warmwasserzuschlag",
|
||||||
// berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
|
berechnungen?.brennstoff_1.primaerenergiefaktor.toString(),
|
||||||
// Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
|
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
|
||||||
// Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
|
Math.round(berechnungen?.energieVerbrauchWarmwasser_1 || 0).toString(),
|
||||||
// 0,
|
0,
|
||||||
// "0"
|
"0"
|
||||||
// );
|
);
|
||||||
// }
|
}
|
||||||
|
|
||||||
if (aufnahme.leerstand && aufnahme.leerstand > 0) {
|
if (aufnahme.leerstand && aufnahme.leerstand > 0) {
|
||||||
/**
|
/**
|
||||||
@@ -642,7 +733,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aufnahme.kuehlung === "1") {
|
if (aufnahme.kuehlung) {
|
||||||
/**
|
/**
|
||||||
* Kühlungszuschlag - Pauschale Erhöhung um 6kWh/m²
|
* Kühlungszuschlag - Pauschale Erhöhung um 6kWh/m²
|
||||||
* Primärenergiefaktor Strom
|
* Primärenergiefaktor Strom
|
||||||
@@ -655,7 +746,7 @@ export async function pdfVerbrauchsausweisGewerbe(ausweis: VerbrauchsausweisGewe
|
|||||||
"",
|
"",
|
||||||
// TODO
|
// TODO
|
||||||
// berechnungen?.primaerfaktorww.toString(),
|
// berechnungen?.primaerfaktorww.toString(),
|
||||||
Math.round(berechnungen?.kuehlungsZuschlag || 0).toString(),
|
Math.round(berechnungen?.kuehlungsZuschlag_1 || 0).toString(),
|
||||||
"0",
|
"0",
|
||||||
0,
|
0,
|
||||||
""
|
""
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ import { Enums } from "#lib/server/prisma.js";
|
|||||||
import * as fs from "fs"
|
import * as fs from "fs"
|
||||||
import moment from "moment";
|
import moment from "moment";
|
||||||
import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib";
|
import { PDFDocument, PDFFont, PDFImage, PDFPage, StandardFonts } from "pdf-lib";
|
||||||
import { addCheckMark } from "./utils/checkbox.js";
|
|
||||||
import { addText } from "./utils/text.js";
|
import { addText } from "./utils/text.js";
|
||||||
import { addAnsichtsausweisLabel, addDatumGEG, addRegistriernummer } from "./utils/helpers.js";
|
import { addAnsichtsausweisLabel, addDatumGEG, addRegistriernummer } from "./utils/helpers.js";
|
||||||
import { getS3File } from "#lib/s3.js";
|
import { getS3File } from "#lib/s3.js";
|
||||||
@@ -12,7 +11,6 @@ import { endEnergieVerbrauchVerbrauchsausweis_2016_Server } from "#lib/Berechnun
|
|||||||
|
|
||||||
/* -------------------------------- Pdf Tools ------------------------------- */
|
/* -------------------------------- Pdf Tools ------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, vorschau = true) {
|
export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohnenClient, aufnahme: AufnahmeClient, objekt: ObjektClient, bilder: BildClient[], user: BenutzerClient, vorschau = true) {
|
||||||
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/GEG24_Wohngebaeude_ohne_pfeile.pdf", import.meta.url), "base64");
|
const VerbrauchsausweisWohnenGEG2024PDF = fs.readFileSync(new URL("../../../public/pdf/templates/GEG24_Wohngebaeude_ohne_pfeile.pdf", import.meta.url), "base64");
|
||||||
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
|
const pdf = await PDFDocument.load(VerbrauchsausweisWohnenGEG2024PDF)
|
||||||
@@ -29,6 +27,18 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
const font = await pdf.embedFont(StandardFonts.Helvetica)
|
const font = await pdf.embedFont(StandardFonts.Helvetica)
|
||||||
const bold = await pdf.embedFont(StandardFonts.HelveticaBold)
|
const bold = await pdf.embedFont(StandardFonts.HelveticaBold)
|
||||||
|
|
||||||
|
|
||||||
|
for (let i = 0; i < pages.length; i++) {
|
||||||
|
const page = pages[i];
|
||||||
|
if (vorschau) {
|
||||||
|
addAnsichtsausweisLabel(page, font)
|
||||||
|
}
|
||||||
|
addDatumGEG(page, font)
|
||||||
|
if (i !== pages.length - 1) {
|
||||||
|
addRegistriernummer(page, font, ausweis.registriernummer || "")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pages[0].drawText(`ID: ${ausweis.id || ""}`, {
|
pages[0].drawText(`ID: ${ausweis.id || ""}`, {
|
||||||
x: 211,
|
x: 211,
|
||||||
y: height - 112.5,
|
y: height - 112.5,
|
||||||
@@ -41,6 +51,23 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
size: 10
|
size: 10
|
||||||
})
|
})
|
||||||
|
|
||||||
|
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
|
||||||
|
|
||||||
|
if (bild) {
|
||||||
|
const file = await getS3File("ibc-images", `${bild.id}.jpg`);
|
||||||
|
|
||||||
|
if (file) {
|
||||||
|
let image: PDFImage;
|
||||||
|
image = await pdf.embedJpg(file)
|
||||||
|
pages[0].drawImage(image, {
|
||||||
|
x: 460.5,
|
||||||
|
y: height - 289,
|
||||||
|
width: 111,
|
||||||
|
height: 138
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pages[0].drawText(objekt.adresse || "", {
|
pages[0].drawText(objekt.adresse || "", {
|
||||||
x: 211,
|
x: 211,
|
||||||
y: height - 194,
|
y: height - 194,
|
||||||
@@ -76,7 +103,16 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
y: height - 285,
|
y: height - 285,
|
||||||
size: 10
|
size: 10
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Nach 82 aus Wohnfläche ermittelt
|
||||||
|
if (aufnahme.nutzflaeche == 0) {
|
||||||
|
pages[0].drawText("x", {
|
||||||
|
x: 275,
|
||||||
|
y: height - 285,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
||||||
x: 211,
|
x: 211,
|
||||||
@@ -84,6 +120,14 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
size: 10
|
size: 10
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if (ausweis.warmwasser_enthalten) {
|
||||||
|
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
||||||
|
x: 211,
|
||||||
|
y: height - 299,
|
||||||
|
size: 10
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten) {
|
if (ausweis.warmwasser_enthalten) {
|
||||||
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
||||||
x: 211,
|
x: 211,
|
||||||
@@ -93,6 +137,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const erneuerbareEnergienVerwendung = []
|
const erneuerbareEnergienVerwendung = []
|
||||||
|
|
||||||
if (ausweis.alternative_heizung) {
|
if (ausweis.alternative_heizung) {
|
||||||
@@ -117,67 +162,98 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
size: 8
|
size: 8
|
||||||
})
|
})
|
||||||
|
|
||||||
if (ausweis.warmwasser_enthalten) {
|
|
||||||
pages[0].drawText(`${ausweis.brennstoff_1}, ${ausweis.brennstoff_2 || ""}`, {
|
|
||||||
x: 211,
|
|
||||||
y: height - 299,
|
|
||||||
size: 10
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) {
|
if (aufnahme.lueftung === Enums.Lueftungskonzept.Fensterlueftung) {
|
||||||
addCheckMark(pages[0], 213, height - 347)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 293,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
|
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.Schachtlueftung) {
|
||||||
addCheckMark(pages[0], 213, height - 358)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 366,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
|
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageMitWaermerueckgewinnung) {
|
||||||
addCheckMark(pages[0], 355, height - 347)
|
pages[0].drawText("x", {
|
||||||
|
x: 356,
|
||||||
|
y: height - 355,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
|
} else if (aufnahme.lueftung === Enums.Lueftungskonzept.LueftungsanlageOhneWaermerueckgewinnung) {
|
||||||
addCheckMark(pages[0], 355, height - 358)
|
pages[0].drawText("x", {
|
||||||
|
x: 356,
|
||||||
|
y: height - 366,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Kühlung
|
// Kühlung
|
||||||
if (aufnahme.kuehlung === "1") {
|
if (aufnahme.kuehlung === "1") {
|
||||||
addCheckMark(pages[0], 213, height - 375.5)
|
pages[0].drawText("x", {
|
||||||
}
|
x: 213,
|
||||||
|
y: height - 383.5,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
pages[0].drawText("x", {
|
||||||
|
x: 356,
|
||||||
|
y: height - 394.5,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
if (ausweis.ausstellgrund === Enums.Ausstellgrund.Neubau) {
|
if (ausweis.ausstellgrund === Enums.Ausstellgrund.Neubau) {
|
||||||
addCheckMark(pages[0], 213, height - 419)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 427,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung || ausweis.ausstellgrund === Enums.Ausstellgrund.Verkauf) {
|
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Vermietung || ausweis.ausstellgrund === Enums.Ausstellgrund.Verkauf) {
|
||||||
addCheckMark(pages[0], 213, height - 430)
|
pages[0].drawText("x", {
|
||||||
|
x: 214,
|
||||||
|
y: height - 438,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Modernisierung) {
|
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Modernisierung) {
|
||||||
addCheckMark(pages[0], 344.5, height - 419)
|
pages[0].drawText("x", {
|
||||||
|
x: 345.5,
|
||||||
|
y: height - 427,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Sonstiges) {
|
} else if (ausweis.ausstellgrund === Enums.Ausstellgrund.Sonstiges) {
|
||||||
addCheckMark(pages[0], 463, height - 419)
|
pages[0].drawText("x", {
|
||||||
|
x: 464,
|
||||||
|
y: height - 427,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
const bild = bilder && bilder.find(image => image.kategorie === Enums.BilderKategorie.Gebaeude);
|
// Checkmark Angabe Verbrauchsausweis
|
||||||
|
pages[0].drawText("x", {
|
||||||
if (bild) {
|
x: 44,
|
||||||
const file = await getS3File("ibc-images", `${bild.id}.jpg`);
|
y: height - 568,
|
||||||
|
size: 10,
|
||||||
if (file) {
|
font: bold
|
||||||
let image: PDFImage;
|
})
|
||||||
image = await pdf.embedJpg(file)
|
|
||||||
pages[0].drawImage(image, {
|
|
||||||
x: 460.5,
|
|
||||||
y: height - 289,
|
|
||||||
width: 111,
|
|
||||||
height: 138
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Nach 82 aus Wohnfläche ermittelt
|
|
||||||
if (aufnahme.nutzflaeche == 0) {
|
|
||||||
addCheckMark(pages[0], 274, height - 277)
|
|
||||||
}
|
|
||||||
|
|
||||||
// Checkmark Angabe energetische Qualität des Gebäudes.
|
|
||||||
addCheckMark(pages[0], 43, height - 560)
|
|
||||||
|
|
||||||
// Datenerhebung durch Eigentümer
|
// Datenerhebung durch Eigentümer
|
||||||
addCheckMark(pages[0], 298, height - 590)
|
pages[0].drawText("x", {
|
||||||
|
x: 299,
|
||||||
|
y: height - 598,
|
||||||
|
size: 10,
|
||||||
|
font: bold
|
||||||
|
})
|
||||||
|
|
||||||
// Ausstellungsdatum
|
// Ausstellungsdatum
|
||||||
pages[0].drawText(moment().format("DD.MM.YYYY"), {
|
pages[0].drawText(moment().format("DD.MM.YYYY"), {
|
||||||
@@ -198,7 +274,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
// Stempel und Unterschrift
|
// Stempel und Unterschrift
|
||||||
if (!vorschau) {
|
if (!vorschau) {
|
||||||
const stempel = await pdf.embedPng(fs.readFileSync(new URL("../../../public/pdf/images/stempel-unterschrift.png", import.meta.url), "base64"));
|
const stempel = await pdf.embedPng(fs.readFileSync(new URL("../../../public/pdf/images/stempel-unterschrift.png", import.meta.url), "base64"));
|
||||||
const stempelHeight = 60
|
const stempelHeight = 65
|
||||||
|
|
||||||
pages[0].drawImage(stempel, {
|
pages[0].drawImage(stempel, {
|
||||||
x: 450,
|
x: 450,
|
||||||
@@ -326,7 +402,7 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addEnergieverbrauchSkalaPfeile(pages[2])
|
|
||||||
|
|
||||||
// CO2 Emissionen
|
// CO2 Emissionen
|
||||||
pages[2].drawText(berechnungen?.co2EmissionenGesamt.toString() || "", {
|
pages[2].drawText(berechnungen?.co2EmissionenGesamt.toString() || "", {
|
||||||
@@ -336,6 +412,8 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
size: 10
|
size: 10
|
||||||
})
|
})
|
||||||
|
|
||||||
|
addEnergieverbrauchSkalaPfeile(pages[2])
|
||||||
|
|
||||||
// Endenergieverbrauch
|
// Endenergieverbrauch
|
||||||
pages[2].drawText(berechnungen?.endEnergieVerbrauchGesamt.toString() || "", {
|
pages[2].drawText(berechnungen?.endEnergieVerbrauchGesamt.toString() || "", {
|
||||||
x: 455,
|
x: 455,
|
||||||
@@ -593,16 +671,5 @@ export async function pdfVerbrauchsausweisWohnen(ausweis: VerbrauchsausweisWohne
|
|||||||
addEmpfehlung(empfehlung.anlagenteil, empfehlung.description, true, empfehlung.amortisationszeit, empfehlung.kosten)
|
addEmpfehlung(empfehlung.anlagenteil, empfehlung.description, true, empfehlung.amortisationszeit, empfehlung.kosten)
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let i = 0; i < pages.length; i++) {
|
|
||||||
const page = pages[i];
|
|
||||||
if (vorschau) {
|
|
||||||
addAnsichtsausweisLabel(page, font)
|
|
||||||
}
|
|
||||||
addDatumGEG(page, font)
|
|
||||||
if (i !== pages.length - 1) {
|
|
||||||
addRegistriernummer(page, font, ausweis.registriernummer || "")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return pdf.save();
|
return pdf.save();
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user