explore the concept

This commit is contained in:
2024-01-25 19:29:04 +01:00
parent 540c665a14
commit 532a9651b9
@@ -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);