mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
explore the concept
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user