mirror of
https://github.com/morbalint/kem2karakterlap.git
synced 2026-07-17 15:23:48 +00:00
refactor
This commit is contained in:
@@ -6,4 +6,4 @@ A projekt célja, a Kard és Mágia második kiadásához kitölthető PDF karak
|
|||||||
|
|
||||||
1. `yarn install`
|
1. `yarn install`
|
||||||
2. `tsc -w`
|
2. `tsc -w`
|
||||||
3. `node dist/index.js`
|
3. `node --watch dist/index.js`
|
||||||
|
|||||||
+29
@@ -0,0 +1,29 @@
|
|||||||
|
import {PDFFont, PDFForm, PDFPage, PDFTextField, rgb} from "pdf-lib";
|
||||||
|
|
||||||
|
export interface TextFieldOptions {
|
||||||
|
name: string,
|
||||||
|
x: number,
|
||||||
|
y: number,
|
||||||
|
w: number,
|
||||||
|
h: number,
|
||||||
|
text?: string,
|
||||||
|
}
|
||||||
|
|
||||||
|
export type RenderTextBoxFunc = (options: TextFieldOptions) => PDFTextField;
|
||||||
|
|
||||||
|
export function addTextFieldFactory(form: PDFForm, pdfFont: PDFFont, page: PDFPage): RenderTextBoxFunc {
|
||||||
|
return (options: TextFieldOptions) => {
|
||||||
|
const field = form.createTextField(options.name)
|
||||||
|
field.setText(options.text)
|
||||||
|
field.addToPage(page, {
|
||||||
|
x: options.x,
|
||||||
|
y: options.y,
|
||||||
|
font: pdfFont,
|
||||||
|
borderColor: rgb(1, 1, 1),
|
||||||
|
borderWidth: 0,
|
||||||
|
width: options.w,
|
||||||
|
height: options.h,
|
||||||
|
})
|
||||||
|
return field
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
Binary file not shown.
@@ -1,7 +1,9 @@
|
|||||||
import {PDFDocument, PDFPage, rgb} from "pdf-lib";
|
import {PDFDocument} from "pdf-lib";
|
||||||
import fs from "fs/promises";
|
import fs from "fs/promises";
|
||||||
import fontKit from "@pdf-lib/fontkit"
|
import fontKit from "@pdf-lib/fontkit"
|
||||||
|
import {addTextFieldFactory} from "./helpers";
|
||||||
|
import {renderMainPage} from "./renderMainPage";
|
||||||
|
import {renderSecondPage} from "./renderSecondPage";
|
||||||
|
|
||||||
export async function Karlap() {
|
export async function Karlap() {
|
||||||
const docBuffer = await fs.readFile("kemkas2karakterlap.pdf", {encoding: null, flag: 'r'})
|
const docBuffer = await fs.readFile("kemkas2karakterlap.pdf", {encoding: null, flag: 'r'})
|
||||||
@@ -13,538 +15,13 @@ export async function Karlap() {
|
|||||||
|
|
||||||
const page0 = doc.getPage(0)
|
const page0 = doc.getPage(0)
|
||||||
page0.setFont(pdfFont)
|
page0.setFont(pdfFont)
|
||||||
|
const addTextField0 = addTextFieldFactory(form, pdfFont, page0)
|
||||||
|
renderMainPage(addTextField0);
|
||||||
|
|
||||||
const addTextFieldToPage = (page: PDFPage) => (options: {name: string, x: number, y: number, w: number, h: number, text?: string}) => {
|
const page1 = doc.getPage(1)
|
||||||
const field = form.createTextField(options.name)
|
page1.setFont(pdfFont)
|
||||||
field.setText(options.text)
|
const addTextField1 = addTextFieldFactory(form, pdfFont, page1)
|
||||||
field.addToPage(page, {
|
renderSecondPage(addTextField1);
|
||||||
x: options.x,
|
|
||||||
y: options.y,
|
|
||||||
font: pdfFont,
|
|
||||||
borderColor: rgb(1,1,1),
|
|
||||||
borderWidth: 0,
|
|
||||||
width: options.w,
|
|
||||||
height: options.h,
|
|
||||||
})
|
|
||||||
return field
|
|
||||||
}
|
|
||||||
|
|
||||||
const addTextField0 = addTextFieldToPage(page0)
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "nev_faj_osztaly",
|
|
||||||
x: 55,
|
|
||||||
y: 730,
|
|
||||||
w: 420,
|
|
||||||
h: 24
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "szint",
|
|
||||||
x: 495,
|
|
||||||
y: 711,
|
|
||||||
w: 36,
|
|
||||||
h: 36
|
|
||||||
})
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "vo",
|
|
||||||
x: 210,
|
|
||||||
y: 690,
|
|
||||||
w: 28,
|
|
||||||
h: 28
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "pancel",
|
|
||||||
x: 303,
|
|
||||||
y: 705,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "pajzs",
|
|
||||||
x: 369,
|
|
||||||
y: 705,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "egyeb_vo",
|
|
||||||
x: 436,
|
|
||||||
y: 705,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
|
|
||||||
// Tulajdonsagok
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_ero",
|
|
||||||
x: 130,
|
|
||||||
y: 688,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_ero_mod",
|
|
||||||
x: 169,
|
|
||||||
y: 688,
|
|
||||||
w: 14,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_ugy",
|
|
||||||
x: 130,
|
|
||||||
y: 660,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_ugy_mod",
|
|
||||||
x: 169,
|
|
||||||
y: 660,
|
|
||||||
w: 14,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_egs",
|
|
||||||
x: 130,
|
|
||||||
y: 631,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_egs_mod",
|
|
||||||
x: 169,
|
|
||||||
y: 631,
|
|
||||||
w: 14,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_int",
|
|
||||||
x: 130,
|
|
||||||
y: 603,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_int_mod",
|
|
||||||
x: 169,
|
|
||||||
y: 603,
|
|
||||||
w: 14,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_bol",
|
|
||||||
x: 130,
|
|
||||||
y: 575,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_bol_mod",
|
|
||||||
x: 169,
|
|
||||||
y: 575,
|
|
||||||
w: 14,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_kar",
|
|
||||||
x: 130,
|
|
||||||
y: 546,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tul_kar_mod",
|
|
||||||
x: 169,
|
|
||||||
y: 546,
|
|
||||||
w: 14,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "jellem",
|
|
||||||
x: 385,
|
|
||||||
y: 680,
|
|
||||||
w: 113,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "istenseg",
|
|
||||||
x: 385,
|
|
||||||
y: 651,
|
|
||||||
w: 150,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
|
|
||||||
// HP
|
|
||||||
addTextField0({
|
|
||||||
name: "hp_rolls",
|
|
||||||
x: 199,
|
|
||||||
y: 640,
|
|
||||||
w: 175,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "hp_aktualis",
|
|
||||||
x: 202,
|
|
||||||
y: 600,
|
|
||||||
w: 170,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "hp_aktualis_2",
|
|
||||||
x: 202,
|
|
||||||
y: 584,
|
|
||||||
w: 170,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "hp_aktualis_3",
|
|
||||||
x: 202,
|
|
||||||
y: 568,
|
|
||||||
w: 170,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "hp_aktualis_4",
|
|
||||||
x: 202,
|
|
||||||
y: 554,
|
|
||||||
w: 170,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
|
|
||||||
// Mentők
|
|
||||||
addTextField0({
|
|
||||||
name: "kitartas_alap",
|
|
||||||
x: 445,
|
|
||||||
y: 617,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "kitartas_mod",
|
|
||||||
x: 479,
|
|
||||||
y: 617,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "kitartas_sum",
|
|
||||||
x: 518,
|
|
||||||
y: 618,
|
|
||||||
w: 14,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "reflex_alap",
|
|
||||||
x: 445,
|
|
||||||
y: 589,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "reflex_mod",
|
|
||||||
x: 479,
|
|
||||||
y: 589,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "reflex_sum",
|
|
||||||
x: 518,
|
|
||||||
y: 590,
|
|
||||||
w: 14,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "akaratero_alap",
|
|
||||||
x: 445,
|
|
||||||
y: 560,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "akaratero_mod",
|
|
||||||
x: 479,
|
|
||||||
y: 560,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "akaratero_sum",
|
|
||||||
x: 518,
|
|
||||||
y: 561,
|
|
||||||
w: 14,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "kezdemenyezes",
|
|
||||||
x: 518,
|
|
||||||
y: 536,
|
|
||||||
w: 14,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "tamadas_bonusz_alap",
|
|
||||||
x: 141,
|
|
||||||
y: 503,
|
|
||||||
w: 38,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tamadas_bonusz_ero",
|
|
||||||
x: 110,
|
|
||||||
y: 475,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tamadas_bonusz_kozelharc",
|
|
||||||
x: 145,
|
|
||||||
y: 476,
|
|
||||||
w: 31,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tamadas_bonusz_ugy",
|
|
||||||
x: 110,
|
|
||||||
y: 447,
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tamadas_bonusz_tavolsagi",
|
|
||||||
x: 145,
|
|
||||||
y: 448,
|
|
||||||
w: 31,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "fegyver_1",
|
|
||||||
x: 187,
|
|
||||||
y: 503,
|
|
||||||
w: 248,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "fegyver_2",
|
|
||||||
x: 187,
|
|
||||||
y: 475,
|
|
||||||
w: 248,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "fegyver_3",
|
|
||||||
x: 187,
|
|
||||||
y: 447,
|
|
||||||
w: 248,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "fegyver_4",
|
|
||||||
x: 187,
|
|
||||||
y: 419,
|
|
||||||
w: 248,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: "tapasztalat",
|
|
||||||
x: 442,
|
|
||||||
y: 500,
|
|
||||||
w: 95,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tapasztalat_2",
|
|
||||||
x: 442,
|
|
||||||
y: 484,
|
|
||||||
w: 95,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tapasztalat_3",
|
|
||||||
x: 442,
|
|
||||||
y: 468,
|
|
||||||
w: 95,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tapasztalat_4",
|
|
||||||
x: 442,
|
|
||||||
y: 452,
|
|
||||||
w: 95,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: "tapasztalat_kovetkezo_szint",
|
|
||||||
x: 447,
|
|
||||||
y: 418,
|
|
||||||
w: 85,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
|
|
||||||
// kepzettseg elso oszlop
|
|
||||||
for (let i = 0; i < 6; i++) {
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${i}_nev`,
|
|
||||||
x: 57,
|
|
||||||
y: 390 - (i * 28.25),
|
|
||||||
w: 100,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${i}_alap`,
|
|
||||||
x: 161,
|
|
||||||
y: 390 - (i * 28.25),
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${i}_bonusz`,
|
|
||||||
x: 195,
|
|
||||||
y: 390 - (i * 28.25),
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${i}_osszes`,
|
|
||||||
x: 234,
|
|
||||||
y: 391 - (i * 28.25),
|
|
||||||
w: 14,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// kepzettseg masodik oszlop
|
|
||||||
for (let i = 0; i < 6; i++) {
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${(i + 6)}_nev`,
|
|
||||||
x: 57+213,
|
|
||||||
y: 390 - (i * 28.25),
|
|
||||||
w: 100,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${(i + 6)}_alap`,
|
|
||||||
x: 161+213,
|
|
||||||
y: 390 - (i * 28.25),
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${(i + 6)}_bonusz`,
|
|
||||||
x: 195+213,
|
|
||||||
y: 390 - (i * 28.25),
|
|
||||||
w: 24,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `kepzettseg_${(i + 6)}_osszes`,
|
|
||||||
x: 234+213,
|
|
||||||
y: 391 - (i * 28.25),
|
|
||||||
w: 14,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
addTextField0({
|
|
||||||
name: `arany`,
|
|
||||||
x: 475,
|
|
||||||
y: 387,
|
|
||||||
w: 63,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `arany_2`,
|
|
||||||
x: 475,
|
|
||||||
y: 373,
|
|
||||||
w: 63,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `arany_3`,
|
|
||||||
x: 475,
|
|
||||||
y: 361,
|
|
||||||
w: 63,
|
|
||||||
h: 12
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `elektrum`,
|
|
||||||
x: 475,
|
|
||||||
y: 387-56,
|
|
||||||
w: 63,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `elektrum_2`,
|
|
||||||
x: 475,
|
|
||||||
y: 373-56,
|
|
||||||
w: 63,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `elektrum_3`,
|
|
||||||
x: 475,
|
|
||||||
y: 361-56,
|
|
||||||
w: 63,
|
|
||||||
h: 12
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `ezust`,
|
|
||||||
x: 475,
|
|
||||||
y: 387-56-57,
|
|
||||||
w: 63,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `ezust_2`,
|
|
||||||
x: 475,
|
|
||||||
y: 373-56-57,
|
|
||||||
w: 63,
|
|
||||||
h: 14
|
|
||||||
})
|
|
||||||
addTextField0({
|
|
||||||
name: `ezust_3`,
|
|
||||||
x: 475,
|
|
||||||
y: 361-56-57,
|
|
||||||
w: 63,
|
|
||||||
h: 12
|
|
||||||
})
|
|
||||||
|
|
||||||
// viselt
|
|
||||||
for (let i = 0; i < 8; i++) {
|
|
||||||
addTextField0({
|
|
||||||
name: `viselt_${(i)}`,
|
|
||||||
x: 62,
|
|
||||||
y: 197 - (i * 19.75),
|
|
||||||
w: 143,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// cipelt
|
|
||||||
for (let i = 0; i < 8; i++) {
|
|
||||||
addTextField0({
|
|
||||||
name: `cipelt_${(i)}`,
|
|
||||||
x: 227,
|
|
||||||
y: 197 - (i * 19.75),
|
|
||||||
w: 143,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
}
|
|
||||||
// aprosagok
|
|
||||||
for (let i = 0; i < 8; i++) {
|
|
||||||
addTextField0({
|
|
||||||
name: `aprosagok_${(i)}`,
|
|
||||||
x: 391,
|
|
||||||
y: 197 - (i * 19.75),
|
|
||||||
w: 143,
|
|
||||||
h: 16
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
form.updateFieldAppearances(pdfFont)
|
form.updateFieldAppearances(pdfFont)
|
||||||
const pdfBytes = await doc.save()
|
const pdfBytes = await doc.save()
|
||||||
|
|||||||
@@ -0,0 +1,550 @@
|
|||||||
|
import {PDFTextField} from "pdf-lib";
|
||||||
|
import {TextFieldOptions} from "./helpers";
|
||||||
|
|
||||||
|
function renderTulajdonsagok(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
// Tulajdonsagok
|
||||||
|
addTextField({
|
||||||
|
name: "tul_ero",
|
||||||
|
x: 130,
|
||||||
|
y: 688,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_ero_mod",
|
||||||
|
x: 169,
|
||||||
|
y: 688,
|
||||||
|
w: 14,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_ugy",
|
||||||
|
x: 130,
|
||||||
|
y: 660,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_ugy_mod",
|
||||||
|
x: 169,
|
||||||
|
y: 660,
|
||||||
|
w: 14,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_egs",
|
||||||
|
x: 130,
|
||||||
|
y: 631,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_egs_mod",
|
||||||
|
x: 169,
|
||||||
|
y: 631,
|
||||||
|
w: 14,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_int",
|
||||||
|
x: 130,
|
||||||
|
y: 603,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_int_mod",
|
||||||
|
x: 169,
|
||||||
|
y: 603,
|
||||||
|
w: 14,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_bol",
|
||||||
|
x: 130,
|
||||||
|
y: 575,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_bol_mod",
|
||||||
|
x: 169,
|
||||||
|
y: 575,
|
||||||
|
w: 14,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_kar",
|
||||||
|
x: 130,
|
||||||
|
y: 546,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tul_kar_mod",
|
||||||
|
x: 169,
|
||||||
|
y: 546,
|
||||||
|
w: 14,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderVO(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "vo",
|
||||||
|
x: 210,
|
||||||
|
y: 690,
|
||||||
|
w: 28,
|
||||||
|
h: 28
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "pancel",
|
||||||
|
x: 303,
|
||||||
|
y: 705,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "pajzs",
|
||||||
|
x: 369,
|
||||||
|
y: 705,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "egyeb_vo",
|
||||||
|
x: 436,
|
||||||
|
y: 705,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderBaseInfo(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "nev_faj_osztaly",
|
||||||
|
x: 55,
|
||||||
|
y: 730,
|
||||||
|
w: 420,
|
||||||
|
h: 24
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "szint",
|
||||||
|
x: 495,
|
||||||
|
y: 711,
|
||||||
|
w: 36,
|
||||||
|
h: 36
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "jellem",
|
||||||
|
x: 385,
|
||||||
|
y: 680,
|
||||||
|
w: 113,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "istenseg",
|
||||||
|
x: 385,
|
||||||
|
y: 651,
|
||||||
|
w: 150,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderHP(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "hp_rolls",
|
||||||
|
x: 199,
|
||||||
|
y: 640,
|
||||||
|
w: 175,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "hp_aktualis",
|
||||||
|
x: 202,
|
||||||
|
y: 600,
|
||||||
|
w: 170,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "hp_aktualis_2",
|
||||||
|
x: 202,
|
||||||
|
y: 584,
|
||||||
|
w: 170,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "hp_aktualis_3",
|
||||||
|
x: 202,
|
||||||
|
y: 568,
|
||||||
|
w: 170,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "hp_aktualis_4",
|
||||||
|
x: 202,
|
||||||
|
y: 554,
|
||||||
|
w: 170,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderMentok(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "kitartas_alap",
|
||||||
|
x: 445,
|
||||||
|
y: 617,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "kitartas_mod",
|
||||||
|
x: 479,
|
||||||
|
y: 617,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "kitartas_sum",
|
||||||
|
x: 518,
|
||||||
|
y: 618,
|
||||||
|
w: 14,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "reflex_alap",
|
||||||
|
x: 445,
|
||||||
|
y: 589,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "reflex_mod",
|
||||||
|
x: 479,
|
||||||
|
y: 589,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "reflex_sum",
|
||||||
|
x: 518,
|
||||||
|
y: 590,
|
||||||
|
w: 14,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "akaratero_alap",
|
||||||
|
x: 445,
|
||||||
|
y: 560,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "akaratero_mod",
|
||||||
|
x: 479,
|
||||||
|
y: 560,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "akaratero_sum",
|
||||||
|
x: 518,
|
||||||
|
y: 561,
|
||||||
|
w: 14,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderTamadasBonusz(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "tamadas_bonusz_alap",
|
||||||
|
x: 141,
|
||||||
|
y: 503,
|
||||||
|
w: 38,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tamadas_bonusz_ero",
|
||||||
|
x: 110,
|
||||||
|
y: 475,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tamadas_bonusz_kozelharc",
|
||||||
|
x: 145,
|
||||||
|
y: 476,
|
||||||
|
w: 31,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tamadas_bonusz_ugy",
|
||||||
|
x: 110,
|
||||||
|
y: 447,
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tamadas_bonusz_tavolsagi",
|
||||||
|
x: 145,
|
||||||
|
y: 448,
|
||||||
|
w: 31,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderFegyverek(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "fegyver_1",
|
||||||
|
x: 187,
|
||||||
|
y: 503,
|
||||||
|
w: 248,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "fegyver_2",
|
||||||
|
x: 187,
|
||||||
|
y: 475,
|
||||||
|
w: 248,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "fegyver_3",
|
||||||
|
x: 187,
|
||||||
|
y: 447,
|
||||||
|
w: 248,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "fegyver_4",
|
||||||
|
x: 187,
|
||||||
|
y: 419,
|
||||||
|
w: 248,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderTapasztalat(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: "tapasztalat",
|
||||||
|
x: 442,
|
||||||
|
y: 500,
|
||||||
|
w: 95,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tapasztalat_2",
|
||||||
|
x: 442,
|
||||||
|
y: 484,
|
||||||
|
w: 95,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tapasztalat_3",
|
||||||
|
x: 442,
|
||||||
|
y: 468,
|
||||||
|
w: 95,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tapasztalat_4",
|
||||||
|
x: 442,
|
||||||
|
y: 452,
|
||||||
|
w: 95,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: "tapasztalat_kovetkezo_szint",
|
||||||
|
x: 447,
|
||||||
|
y: 418,
|
||||||
|
w: 85,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderKepzettsegek(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
// elso oszlop
|
||||||
|
for (let i = 0; i < 6; i++) {
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${i}_nev`,
|
||||||
|
x: 57,
|
||||||
|
y: 390 - (i * 28.25),
|
||||||
|
w: 100,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${i}_alap`,
|
||||||
|
x: 161,
|
||||||
|
y: 390 - (i * 28.25),
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${i}_bonusz`,
|
||||||
|
x: 195,
|
||||||
|
y: 390 - (i * 28.25),
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${i}_osszes`,
|
||||||
|
x: 234,
|
||||||
|
y: 391 - (i * 28.25),
|
||||||
|
w: 14,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// masodik oszlop
|
||||||
|
for (let i = 0; i < 6; i++) {
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${(i + 6)}_nev`,
|
||||||
|
x: 57 + 213,
|
||||||
|
y: 390 - (i * 28.25),
|
||||||
|
w: 100,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${(i + 6)}_alap`,
|
||||||
|
x: 161 + 213,
|
||||||
|
y: 390 - (i * 28.25),
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${(i + 6)}_bonusz`,
|
||||||
|
x: 195 + 213,
|
||||||
|
y: 390 - (i * 28.25),
|
||||||
|
w: 24,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `kepzettseg_${(i + 6)}_osszes`,
|
||||||
|
x: 234 + 213,
|
||||||
|
y: 391 - (i * 28.25),
|
||||||
|
w: 14,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderPenz(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: `arany`,
|
||||||
|
x: 475,
|
||||||
|
y: 387,
|
||||||
|
w: 63,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `arany_2`,
|
||||||
|
x: 475,
|
||||||
|
y: 373,
|
||||||
|
w: 63,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `arany_3`,
|
||||||
|
x: 475,
|
||||||
|
y: 361,
|
||||||
|
w: 63,
|
||||||
|
h: 12
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `elektrum`,
|
||||||
|
x: 475,
|
||||||
|
y: 387 - 56,
|
||||||
|
w: 63,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `elektrum_2`,
|
||||||
|
x: 475,
|
||||||
|
y: 373 - 56,
|
||||||
|
w: 63,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `elektrum_3`,
|
||||||
|
x: 475,
|
||||||
|
y: 361 - 56,
|
||||||
|
w: 63,
|
||||||
|
h: 12
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `ezust`,
|
||||||
|
x: 475,
|
||||||
|
y: 387 - 56 - 57,
|
||||||
|
w: 63,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `ezust_2`,
|
||||||
|
x: 475,
|
||||||
|
y: 373 - 56 - 57,
|
||||||
|
w: 63,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `ezust_3`,
|
||||||
|
x: 475,
|
||||||
|
y: 361 - 56 - 57,
|
||||||
|
w: 63,
|
||||||
|
h: 12
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderFelszereles(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
// viselt
|
||||||
|
for (let i = 0; i < 8; i++) {
|
||||||
|
addTextField({
|
||||||
|
name: `viselt_${(i)}`,
|
||||||
|
x: 62,
|
||||||
|
y: 197 - (i * 19.75),
|
||||||
|
w: 143,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// cipelt
|
||||||
|
for (let i = 0; i < 8; i++) {
|
||||||
|
addTextField({
|
||||||
|
name: `cipelt_${(i)}`,
|
||||||
|
x: 227,
|
||||||
|
y: 197 - (i * 19.75),
|
||||||
|
w: 143,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
// aprosagok
|
||||||
|
for (let i = 0; i < 8; i++) {
|
||||||
|
addTextField({
|
||||||
|
name: `aprosagok_${(i)}`,
|
||||||
|
x: 391,
|
||||||
|
y: 197 - (i * 19.75),
|
||||||
|
w: 143,
|
||||||
|
h: 16
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export function renderMainPage(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
renderBaseInfo(addTextField);
|
||||||
|
renderVO(addTextField);
|
||||||
|
renderTulajdonsagok(addTextField);
|
||||||
|
renderHP(addTextField);
|
||||||
|
renderMentok(addTextField);
|
||||||
|
|
||||||
|
addTextField({
|
||||||
|
name: "kezdemenyezes",
|
||||||
|
x: 518,
|
||||||
|
y: 536,
|
||||||
|
w: 14,
|
||||||
|
h: 14
|
||||||
|
})
|
||||||
|
|
||||||
|
renderTamadasBonusz(addTextField);
|
||||||
|
renderFegyverek(addTextField);
|
||||||
|
renderTapasztalat(addTextField);
|
||||||
|
renderKepzettsegek(addTextField);
|
||||||
|
renderPenz(addTextField);
|
||||||
|
renderFelszereles(addTextField);
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import {RenderTextBoxFunc} from "./helpers";
|
||||||
|
|
||||||
|
export function renderSecondPage(addTextField: RenderTextBoxFunc): void {
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user