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 {DrawOsztalySpecialsPage} from './osztaly_specials.pdf'
|
||||||
import {DrawFegyverek} from "./fegyverek.pdf";
|
import {DrawFegyverek} from "./fegyverek.pdf";
|
||||||
|
|
||||||
function drawBaseInfo(karakter: KarakterPdfView, draw: (text: string, x : number ,y: number, scale: number) => void) {
|
function drawBaseInfo(karakter: KarakterPdfView,
|
||||||
draw(karakter.Name, 60, 710, 1)
|
draw: (name: string, text: string, x : number ,y: number, width: number, scale: number) => void) {
|
||||||
draw(karakter.Nem, 454, 710, 1)
|
draw("nev", karakter.Name, 56, 704, 190, 1)
|
||||||
draw(karakter.Kor.toString(), 454, 690, 1)
|
draw("nem", karakter.Nem, 449, 704, 90, 11/12)
|
||||||
draw(karakter.Isten, 454, 670, 1)
|
draw("kor", karakter.Kor.toString(), 449, 687, 90, 11/12)
|
||||||
draw(karakter.Osztaly, 60, 672, 1)
|
draw("isten", karakter.Isten, 449, 669, 90, 11/12)
|
||||||
draw(karakter.Szint, karakter.Szint.length > 1 ? 252 : 264, 682, 3)
|
draw("osztaly", karakter.Osztaly, 56, 668, 190, 1)
|
||||||
draw(karakter.Faj, 302, 710, 1)
|
draw("szint", karakter.Szint, 250, 669, 45, 3)
|
||||||
draw(karakter.Jellem, 302, 672, karakter.Jellem.length > 17 ? 11/12 : 1)
|
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) {
|
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 existingPdfBytes = await fetch('/km_karakterlap_hysteria_1.2.pdf').then(res => res.arrayBuffer())
|
||||||
const pdfDoc = await PDFDocument.load(existingPdfBytes)
|
const pdfDoc = await PDFDocument.load(existingPdfBytes)
|
||||||
pdfDoc.registerFontkit(fontkit)
|
pdfDoc.registerFontkit(fontkit)
|
||||||
|
|
||||||
|
|
||||||
const fontBytes = await fetch('/Merienda-Regular.ttf').then(res => res.arrayBuffer())
|
const fontBytes = await fetch('/Merienda-Regular.ttf').then(res => res.arrayBuffer())
|
||||||
const pdfFont = await pdfDoc.embedFont(fontBytes)
|
const pdfFont = await pdfDoc.embedFont(fontBytes)
|
||||||
// const pdfFont = await pdfDoc.embedFont(StandardFonts.TimesNewRoman)
|
// const pdfFont = await pdfDoc.embedFont(StandardFonts.TimesNewRoman)
|
||||||
const fontSizeBase = 12
|
const fontSizeBase = 12
|
||||||
|
|
||||||
|
const form = pdfDoc.getForm()
|
||||||
const page = pdfDoc.getPage(0)
|
const page = pdfDoc.getPage(0)
|
||||||
|
|
||||||
function drawText(text: string, x: number, y: number, fontScale = 1, shade = 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);
|
DrawTulajdonsagok(page, karakter.Tulajdonsagok, fontSizeBase, pdfFont);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user