diff --git a/Kemkas.Web/frontend/src/first-edition/pdf/character.pdf.ts b/Kemkas.Web/frontend/src/first-edition/pdf/character.pdf.ts index f571c8e..bd86beb 100644 --- a/Kemkas.Web/frontend/src/first-edition/pdf/character.pdf.ts +++ b/Kemkas.Web/frontend/src/first-edition/pdf/character.pdf.ts @@ -10,15 +10,16 @@ import {DrawMasodlagosErtekek} from './masodlagos_ertekek.pdf' import {DrawOsztalySpecialsPage} from './osztaly_specials.pdf' import {DrawFegyverek} from "./fegyverek.pdf"; -function drawBaseInfo(karakter: KarakterPdfView, draw: (text: string, x : number ,y: number, scale: number) => void) { - draw(karakter.Name, 60, 710, 1) - draw(karakter.Nem, 454, 710, 1) - draw(karakter.Kor.toString(), 454, 690, 1) - draw(karakter.Isten, 454, 670, 1) - draw(karakter.Osztaly, 60, 672, 1) - draw(karakter.Szint, karakter.Szint.length > 1 ? 252 : 264, 682, 3) - draw(karakter.Faj, 302, 710, 1) - draw(karakter.Jellem, 302, 672, karakter.Jellem.length > 17 ? 11/12 : 1) +function drawBaseInfo(karakter: KarakterPdfView, + draw: (name: string, text: string, x : number ,y: number, width: number, scale: number) => void) { + draw("nev", karakter.Name, 56, 704, 190, 1) + draw("nem", karakter.Nem, 449, 704, 90, 11/12) + draw("kor", karakter.Kor.toString(), 449, 687, 90, 11/12) + draw("isten", karakter.Isten, 449, 669, 90, 11/12) + draw("osztaly", karakter.Osztaly, 56, 668, 190, 1) + draw("szint", karakter.Szint, 250, 669, 45, 3) + draw("faj", karakter.Faj, 301, 704, 110, 1) + draw("jellem", karakter.Jellem, 301, 669, 110,karakter.Jellem.length > 17 ? 11/12 : 1) } function DrawKepzettsegek(draw: (text: string, x: number, y: number) => void, kepzettsegek: KepzettsegPdfView[], startFrom: number) { @@ -43,12 +44,14 @@ export async function CreatePDF(karakter: KarakterPdfView) { const existingPdfBytes = await fetch('/km_karakterlap_hysteria_1.2.pdf').then(res => res.arrayBuffer()) const pdfDoc = await PDFDocument.load(existingPdfBytes) pdfDoc.registerFontkit(fontkit) + const fontBytes = await fetch('/Merienda-Regular.ttf').then(res => res.arrayBuffer()) const pdfFont = await pdfDoc.embedFont(fontBytes) // const pdfFont = await pdfDoc.embedFont(StandardFonts.TimesNewRoman) const fontSizeBase = 12 - + + const form = pdfDoc.getForm() const page = pdfDoc.getPage(0) function drawText(text: string, x: number, y: number, fontScale = 1, shade = 0) { @@ -61,7 +64,27 @@ export async function CreatePDF(karakter: KarakterPdfView) { }) } - drawBaseInfo(karakter, drawText); + function drawInputField(name: string, text: string, x: number, y: number, width: number, fontScale = 1) { + let field = form.createTextField(`kemkas.1e.${name}`) + field.addToPage(page, { + x: x, + y: y, + font: pdfFont, + height: pdfFont.heightAtSize(fontSizeBase * fontScale), + width: width, + borderWidth: 0, + borderColor: rgb(0,0,0) + }); + field.disablePassword(); + field.disableMultiline(); + field.disableRichFormatting(); + field.disableFileSelection(); + field.disableSpellChecking(); + field.setFontSize(fontSizeBase * fontScale); + field.setText(text); + } + + drawBaseInfo(karakter, drawInputField); DrawTulajdonsagok(page, karakter.Tulajdonsagok, fontSizeBase, pdfFont);