mirror of
https://github.com/morbalint/kem2karakterlap.git
synced 2026-07-17 15:23:48 +00:00
add varazslatlapok
This commit is contained in:
BIN
Binary file not shown.
@@ -4,6 +4,7 @@ import fontKit from "@pdf-lib/fontkit"
|
|||||||
import {addTextFieldFactory} from "./helpers";
|
import {addTextFieldFactory} from "./helpers";
|
||||||
import {renderMainPage} from "./renderMainPage";
|
import {renderMainPage} from "./renderMainPage";
|
||||||
import {renderSecondPage} from "./renderSecondPage";
|
import {renderSecondPage} from "./renderSecondPage";
|
||||||
|
import {renderFullCasterVarazslatlap, renderHalfCasterVarazslatlap} from "./renderVarazslatlap";
|
||||||
|
|
||||||
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'})
|
||||||
@@ -23,6 +24,16 @@ export async function Karlap() {
|
|||||||
const addTextField1 = addTextFieldFactory(form, pdfFont, page1)
|
const addTextField1 = addTextFieldFactory(form, pdfFont, page1)
|
||||||
renderSecondPage(addTextField1);
|
renderSecondPage(addTextField1);
|
||||||
|
|
||||||
|
const page2 = doc.getPage(2)
|
||||||
|
page2.setFont(pdfFont)
|
||||||
|
const addTextField2 = addTextFieldFactory(form, pdfFont, page2)
|
||||||
|
renderFullCasterVarazslatlap(addTextField2);
|
||||||
|
|
||||||
|
const page3 = doc.getPage(3)
|
||||||
|
page3.setFont(pdfFont)
|
||||||
|
const addTextField3 = addTextFieldFactory(form, pdfFont, page3)
|
||||||
|
renderHalfCasterVarazslatlap(addTextField3);
|
||||||
|
|
||||||
form.updateFieldAppearances(pdfFont)
|
form.updateFieldAppearances(pdfFont)
|
||||||
const pdfBytes = await doc.save()
|
const pdfBytes = await doc.save()
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -0,0 +1,234 @@
|
|||||||
|
import {PDFTextField} from "pdf-lib";
|
||||||
|
import {TextFieldOptions} from "./helpers";
|
||||||
|
|
||||||
|
function renderPreparedSpells(
|
||||||
|
addTextField: (options: TextFieldOptions) => PDFTextField,
|
||||||
|
prefix: string,
|
||||||
|
varazslatszint: number,
|
||||||
|
xOffset: number,
|
||||||
|
yOffset: number,
|
||||||
|
max: number,
|
||||||
|
hasBonusz?: boolean) {
|
||||||
|
addTextField({
|
||||||
|
name: `${prefix}_${varazslatszint}szintu_darab`,
|
||||||
|
x: 194 + xOffset,
|
||||||
|
y: 685 + yOffset,
|
||||||
|
w: 8,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `${prefix}_${varazslatszint}szintu_nf`,
|
||||||
|
x: 265 + xOffset,
|
||||||
|
y: 685 + yOffset,
|
||||||
|
w: 20,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
for (let i = 0; i < max - 1; i++) {
|
||||||
|
addTextField({
|
||||||
|
name: `${prefix}_${varazslatszint}szintu_${i}`,
|
||||||
|
x: 58 + xOffset,
|
||||||
|
y: 665 + yOffset - (i * 19.85),
|
||||||
|
w: 233,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
addTextField({
|
||||||
|
name: `${prefix}_${varazslatszint}szintu_${max - 1}`,
|
||||||
|
x: 65 + xOffset + (hasBonusz === true ? 30 : 0),
|
||||||
|
y: 665 + yOffset - ((max - 1) * 19.85),
|
||||||
|
w: 218 - (hasBonusz === true ? 30 : 0),
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderEgyszeriVarazslat(
|
||||||
|
addTextField: (options: TextFieldOptions) => PDFTextField,
|
||||||
|
i: number,
|
||||||
|
last?: boolean,) {
|
||||||
|
const offset = 74;
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_nev`,
|
||||||
|
x: 58,
|
||||||
|
y: 259 - (i*offset),
|
||||||
|
w: 210,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_szint`,
|
||||||
|
x: 280,
|
||||||
|
y: 259 - (i*offset),
|
||||||
|
w: 12,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_hatoido`,
|
||||||
|
x: 298.5,
|
||||||
|
y: 259 - (i*offset),
|
||||||
|
w: 64,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_tav`,
|
||||||
|
x: 364.5,
|
||||||
|
y: 259 - (i*offset),
|
||||||
|
w: 23,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_terulet`,
|
||||||
|
x: 389.5,
|
||||||
|
y: 259 - (i*offset),
|
||||||
|
w: 92,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_mento`,
|
||||||
|
x: 484.5,
|
||||||
|
y: 259 - (i*offset),
|
||||||
|
w: 53,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
const rounded = last === true
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_leiras_0`,
|
||||||
|
x: 58,
|
||||||
|
y: 240 - (i*offset),
|
||||||
|
w: 480,
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_leiras_1`,
|
||||||
|
x: 58,
|
||||||
|
y: 240 - (i*offset) - 16,
|
||||||
|
w: 480,
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_full_egyszeri_${i}_leiras_2`,
|
||||||
|
x: 58 + (rounded ? 10 : 0),
|
||||||
|
y: 240 - (i*offset) - 32,
|
||||||
|
w: 480 - (rounded ? 20 : 0),
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function renderEgyszeriVarazslatHalfCaster(
|
||||||
|
addTextField: (options: TextFieldOptions) => PDFTextField,
|
||||||
|
i: number,
|
||||||
|
last?: boolean,) {
|
||||||
|
const offset = 91;
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_nev`,
|
||||||
|
x: 58,
|
||||||
|
y: 401 - (i*offset),
|
||||||
|
w: 210,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_szint`,
|
||||||
|
x: 280,
|
||||||
|
y: 401 - (i*offset),
|
||||||
|
w: 12,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_hatoido`,
|
||||||
|
x: 298.5,
|
||||||
|
y: 401 - (i*offset),
|
||||||
|
w: 64,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_tav`,
|
||||||
|
x: 364.5,
|
||||||
|
y: 401 - (i*offset),
|
||||||
|
w: 23,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_terulet`,
|
||||||
|
x: 389.5,
|
||||||
|
y: 401 - (i*offset),
|
||||||
|
w: 92,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_mento`,
|
||||||
|
x: 484.5,
|
||||||
|
y: 401 - (i*offset),
|
||||||
|
w: 53,
|
||||||
|
h: 18,
|
||||||
|
})
|
||||||
|
const rounded = last === true
|
||||||
|
for (let j = 0; j < 3; j++) {
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_leiras_${j}`,
|
||||||
|
x: 58,
|
||||||
|
y: 381 - (i*offset) - (16*j),
|
||||||
|
w: 480,
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
addTextField({
|
||||||
|
name: `varazslatlap_half_egyszeri_${i}_leiras_3`,
|
||||||
|
x: 58 + (rounded ? 10 : 0),
|
||||||
|
y: 381 - (i*offset) - 48,
|
||||||
|
w: 480 - (rounded ? 20 : 0),
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function renderFullCasterVarazslatlap(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: 'varazslatlap_full_nev_faj_osztaly',
|
||||||
|
x: 56,
|
||||||
|
y: 731,
|
||||||
|
w: 420,
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: 'varazslatlap_full_szint',
|
||||||
|
x: 493,
|
||||||
|
y: 711,
|
||||||
|
w: 36,
|
||||||
|
h: 36,
|
||||||
|
})
|
||||||
|
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_full', 0, 0, 0, 7);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_full',1, 247, -20, 6, true);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_full',2, 0, -170, 5, true);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_full',3, 247, -170, 5, true);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_full',4, 0, -301, 3 );
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_full',5, 247, -301, 3 );
|
||||||
|
|
||||||
|
renderEgyszeriVarazslat(addTextField,0);
|
||||||
|
renderEgyszeriVarazslat(addTextField,1);
|
||||||
|
renderEgyszeriVarazslat(addTextField,2, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function renderHalfCasterVarazslatlap(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||||
|
addTextField({
|
||||||
|
name: 'varazslatlap_half_nev_faj_osztaly',
|
||||||
|
x: 56,
|
||||||
|
y: 731,
|
||||||
|
w: 420,
|
||||||
|
h: 16,
|
||||||
|
})
|
||||||
|
addTextField({
|
||||||
|
name: 'varazslatlap_half_szint',
|
||||||
|
x: 493,
|
||||||
|
y: 726,
|
||||||
|
w: 36,
|
||||||
|
h: 36,
|
||||||
|
})
|
||||||
|
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_half',0, 0, -3, 5);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_half',1, 247, -3, 5);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_half',2, 0, -133, 4);
|
||||||
|
renderPreparedSpells(addTextField, 'varazslatlap_half',3, 247, -133, 3);
|
||||||
|
|
||||||
|
renderEgyszeriVarazslatHalfCaster(addTextField,0);
|
||||||
|
renderEgyszeriVarazslatHalfCaster(addTextField,1);
|
||||||
|
renderEgyszeriVarazslatHalfCaster(addTextField,2);
|
||||||
|
renderEgyszeriVarazslatHalfCaster(addTextField,3, true);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user