mirror of
https://github.com/morbalint/kem2karakterlap.git
synced 2026-07-17 15:23:48 +00:00
add varazslat lapok
This commit is contained in:
+2
-2
@@ -9,9 +9,9 @@ export interface TextFieldOptions {
|
||||
text?: string,
|
||||
}
|
||||
|
||||
export type RenderTextBoxFunc = (options: TextFieldOptions) => PDFTextField;
|
||||
export type RenderTextFieldFunc = (options: TextFieldOptions) => PDFTextField;
|
||||
|
||||
export function addTextFieldFactory(form: PDFForm, pdfFont: PDFFont, page: PDFPage): RenderTextBoxFunc {
|
||||
export function addTextFieldFactory(form: PDFForm, pdfFont: PDFFont, page: PDFPage): RenderTextFieldFunc {
|
||||
return (options: TextFieldOptions) => {
|
||||
const field = form.createTextField(options.name)
|
||||
field.setText(options.text)
|
||||
|
||||
BIN
Binary file not shown.
@@ -5,6 +5,12 @@ import {addTextFieldFactory} from "./helpers";
|
||||
import {renderMainPage} from "./renderMainPage";
|
||||
import {renderSecondPage} from "./renderSecondPage";
|
||||
import {renderFullCasterVarazslatlap, renderHalfCasterVarazslatlap} from "./renderVarazslatlap";
|
||||
import {
|
||||
renderVarazskonyvFrontPage,
|
||||
renderVarazskonyvLeftPage,
|
||||
renderVarazskonyvRightPage,
|
||||
renderVarazskonyvSecondPage
|
||||
} from "./renderVarazskonyv";
|
||||
|
||||
export async function Karlap() {
|
||||
const docBuffer = await fs.readFile("kemkas2karakterlap.pdf", {encoding: null, flag: 'r'})
|
||||
@@ -34,6 +40,26 @@ export async function Karlap() {
|
||||
const addTextField3 = addTextFieldFactory(form, pdfFont, page3)
|
||||
renderHalfCasterVarazslatlap(addTextField3);
|
||||
|
||||
const page4 = doc.getPage(4)
|
||||
page4.setFont(pdfFont)
|
||||
const addTextField4 = addTextFieldFactory(form, pdfFont, page4)
|
||||
renderVarazskonyvFrontPage(addTextField4);
|
||||
|
||||
const page5 = doc.getPage(5)
|
||||
page5.setFont(pdfFont)
|
||||
const addTextField5 = addTextFieldFactory(form, pdfFont, page5)
|
||||
renderVarazskonyvSecondPage(addTextField5);
|
||||
|
||||
const page6 = doc.getPage(6)
|
||||
page6.setFont(pdfFont)
|
||||
const addTextField6 = addTextFieldFactory(form, pdfFont, page6)
|
||||
renderVarazskonyvRightPage(addTextField6);
|
||||
|
||||
const page7 = doc.getPage(7)
|
||||
page7.setFont(pdfFont)
|
||||
const addTextField7 = addTextFieldFactory(form, pdfFont, page7)
|
||||
renderVarazskonyvLeftPage(addTextField7);
|
||||
|
||||
form.updateFieldAppearances(pdfFont)
|
||||
const pdfBytes = await doc.save()
|
||||
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
import {RenderTextBoxFunc} from "./helpers";
|
||||
import {RenderTextFieldFunc} from "./helpers";
|
||||
|
||||
export function renderSecondPage(addTextField: RenderTextBoxFunc): void {
|
||||
export function renderSecondPage(addTextField: RenderTextFieldFunc): void {
|
||||
|
||||
// specialis kepessegek
|
||||
for (let i = 0; i < 7; i++) {
|
||||
|
||||
@@ -0,0 +1,247 @@
|
||||
import {RenderTextFieldFunc} from "./helpers";
|
||||
|
||||
interface RenderVarazslatParams {
|
||||
addTextField: RenderTextFieldFunc,
|
||||
i: number,
|
||||
page?: number
|
||||
yOffset?: number
|
||||
xOffset?: number
|
||||
rows?: number,
|
||||
last?: boolean
|
||||
}
|
||||
|
||||
function renderVarazslatOnFirstPage({addTextField, i, last}: RenderVarazslatParams) {
|
||||
const offset = 105;
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_nev`,
|
||||
x: 58,
|
||||
y: 668 - (i*offset),
|
||||
w: 210,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_szint`,
|
||||
x: 280,
|
||||
y: 668 - (i*offset),
|
||||
w: 12,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_hatoido`,
|
||||
x: 298.5,
|
||||
y: 668 - (i*offset),
|
||||
w: 64,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_tav`,
|
||||
x: 364.5,
|
||||
y: 668 - (i*offset),
|
||||
w: 23,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_terulet`,
|
||||
x: 389.5,
|
||||
y: 668 - (i*offset),
|
||||
w: 92,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_mento`,
|
||||
x: 484.5,
|
||||
y: 668 - (i*offset),
|
||||
w: 53,
|
||||
h: 18,
|
||||
})
|
||||
const rounded = last === true
|
||||
for (let j = 0; j < 4; j++) {
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_leiras_${j}`,
|
||||
x: 58,
|
||||
y: 648 - (i*offset) - (16*j),
|
||||
w: 480,
|
||||
h: 16,
|
||||
})
|
||||
}
|
||||
addTextField({
|
||||
name: `varazskonyv_page1_spell${i}_leiras_4`,
|
||||
x: 58 + (rounded ? 10 : 0),
|
||||
y: 648 - (i*offset) - (4*16),
|
||||
w: 480 - (rounded ? 20 : 0),
|
||||
h: 16,
|
||||
})
|
||||
}
|
||||
|
||||
export function renderVarazskonyvFrontPage(addTextField: RenderTextFieldFunc) {
|
||||
addTextField({
|
||||
name: 'varazskonyv_nev_faj_osztaly_szint',
|
||||
x: 57,
|
||||
y: 731,
|
||||
w: 482,
|
||||
h: 16,
|
||||
})
|
||||
for (let i = 0; i < 5; i++){
|
||||
renderVarazslatOnFirstPage({addTextField, i})
|
||||
}
|
||||
renderVarazslatOnFirstPage({addTextField, i: 5, last: true})
|
||||
}
|
||||
|
||||
function renderVarazslatOnSecondPage({addTextField, i, yOffset, rows, last}: RenderVarazslatParams) {
|
||||
yOffset = yOffset || 0
|
||||
rows = rows || 4
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_nev`,
|
||||
x: 58,
|
||||
y: 748 - yOffset,
|
||||
w: 210,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_szint`,
|
||||
x: 280,
|
||||
y: 748 - yOffset,
|
||||
w: 12,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_hatoido`,
|
||||
x: 298.5,
|
||||
y: 748 - yOffset,
|
||||
w: 64,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_tav`,
|
||||
x: 364.5,
|
||||
y: 748 - yOffset,
|
||||
w: 23,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_terulet`,
|
||||
x: 389.5,
|
||||
y: 748 - yOffset,
|
||||
w: 92,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_mento`,
|
||||
x: 484.5,
|
||||
y: 748 - yOffset,
|
||||
w: 53,
|
||||
h: 18,
|
||||
})
|
||||
const rounded = last === true
|
||||
for (let j = 0; j < rows; j++) {
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_leiras_${j}`,
|
||||
x: 58,
|
||||
y: 730 - yOffset - (16*j),
|
||||
w: 480,
|
||||
h: 16,
|
||||
})
|
||||
}
|
||||
addTextField({
|
||||
name: `varazskonyv_page2_spell${i}_leiras_${rows}`,
|
||||
x: 58 + (rounded ? 10 : 0),
|
||||
y: 730 - yOffset - (rows*16),
|
||||
w: 480 - (rounded ? 20 : 0),
|
||||
h: 16,
|
||||
})
|
||||
}
|
||||
|
||||
export function renderVarazskonyvSecondPage(addTextField: RenderTextFieldFunc) {
|
||||
renderVarazslatOnSecondPage({addTextField, i: 0, yOffset: 0})
|
||||
renderVarazslatOnSecondPage({addTextField, i: 1, yOffset: 103})
|
||||
renderVarazslatOnSecondPage({addTextField, i: 2, yOffset: 205})
|
||||
renderVarazslatOnSecondPage({addTextField, i: 3, yOffset: 310})
|
||||
renderVarazslatOnSecondPage({addTextField, i: 4, yOffset: 412})
|
||||
renderVarazslatOnSecondPage({addTextField, i: 5, yOffset: 517, rows: 3})
|
||||
renderVarazslatOnSecondPage({addTextField, i: 6, yOffset: 608, last: true})
|
||||
}
|
||||
|
||||
function renderVarazslatOnBookPage({addTextField, i, page, xOffset, yOffset, rows, last}: RenderVarazslatParams) {
|
||||
xOffset = xOffset || 0
|
||||
yOffset = yOffset || 0
|
||||
rows = rows || 4
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_nev`,
|
||||
x: 58 + xOffset,
|
||||
y: 748 - yOffset,
|
||||
w: 210 - 28,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_szint`,
|
||||
x: 280 + xOffset -28,
|
||||
y: 748 - yOffset,
|
||||
w: 12,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_hatoido`,
|
||||
x: 298.5 + xOffset -28,
|
||||
y: 748 - yOffset,
|
||||
w: 64,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_tav`,
|
||||
x: 364.5 + xOffset -28,
|
||||
y: 748 - yOffset,
|
||||
w: 23,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_terulet`,
|
||||
x: 389.5 + xOffset -28,
|
||||
y: 748 - yOffset,
|
||||
w: 92,
|
||||
h: 18,
|
||||
})
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_mento`,
|
||||
x: 484.5 + xOffset -28,
|
||||
y: 748 - yOffset,
|
||||
w: 53,
|
||||
h: 18,
|
||||
})
|
||||
const rounded = last === true
|
||||
for (let j = 0; j < rows; j++) {
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_leiras_${j}`,
|
||||
x: 58 + xOffset,
|
||||
y: 730 - yOffset - (16*j),
|
||||
w: 480 - 28,
|
||||
h: 16,
|
||||
})
|
||||
}
|
||||
addTextField({
|
||||
name: `varazskonyv_page${page}_spell${i}_leiras_${rows}`,
|
||||
x: 58 + (rounded ? 10 : 0) + xOffset,
|
||||
y: 730 - yOffset - (rows*16) + 3,
|
||||
w: 480 - (rounded ? 20 : 0) - 28,
|
||||
h: 14,
|
||||
})
|
||||
}
|
||||
|
||||
export function renderVarazskonyvRightPage(addTextField: RenderTextFieldFunc) {
|
||||
renderVarazslatOnBookPage({addTextField, i: 0, page: 3, xOffset: 29, yOffset: 1})
|
||||
renderVarazslatOnBookPage({addTextField, i: 1, page: 3, xOffset: 29, yOffset: 101})
|
||||
renderVarazslatOnBookPage({addTextField, i: 2, page: 3, xOffset: 29, yOffset: 200})
|
||||
renderVarazslatOnBookPage({addTextField, i: 3, page: 3, xOffset: 29, yOffset: 299})
|
||||
renderVarazslatOnBookPage({addTextField, i: 4, page: 3, xOffset: 29, yOffset: 399})
|
||||
renderVarazslatOnBookPage({addTextField, i: 5, page: 3, xOffset: 29, yOffset: 498})
|
||||
renderVarazslatOnBookPage({addTextField, i: 6, page: 3, xOffset: 29, yOffset: 603, last: true})
|
||||
}
|
||||
|
||||
export function renderVarazskonyvLeftPage(addTextField: RenderTextFieldFunc) {
|
||||
renderVarazslatOnBookPage({addTextField, i: 0, page: 4, yOffset: 2})
|
||||
renderVarazslatOnBookPage({addTextField, i: 1, page: 4, yOffset: 101})
|
||||
renderVarazslatOnBookPage({addTextField, i: 2, page: 4, yOffset: 201})
|
||||
renderVarazslatOnBookPage({addTextField, i: 3, page: 4, yOffset: 300})
|
||||
renderVarazslatOnBookPage({addTextField, i: 4, page: 4, yOffset: 399})
|
||||
renderVarazslatOnBookPage({addTextField, i: 5, page: 4, yOffset: 498})
|
||||
renderVarazslatOnBookPage({addTextField, i: 6, page: 4, yOffset: 603, last: true})
|
||||
}
|
||||
+45
-36
@@ -1,14 +1,17 @@
|
||||
import {PDFTextField} from "pdf-lib";
|
||||
import {TextFieldOptions} from "./helpers";
|
||||
import {RenderTextFieldFunc} from "./helpers";
|
||||
|
||||
interface PreparedSpellsParams {
|
||||
addTextField: RenderTextFieldFunc;
|
||||
prefix: string;
|
||||
varazslatszint: number;
|
||||
xOffset: number;
|
||||
yOffset: number;
|
||||
max: number;
|
||||
hasBonusz?: boolean;
|
||||
}
|
||||
|
||||
function renderPreparedSpells(
|
||||
addTextField: (options: TextFieldOptions) => PDFTextField,
|
||||
prefix: string,
|
||||
varazslatszint: number,
|
||||
xOffset: number,
|
||||
yOffset: number,
|
||||
max: number,
|
||||
hasBonusz?: boolean) {
|
||||
{addTextField, prefix, varazslatszint, xOffset, yOffset, max, hasBonusz}: PreparedSpellsParams) {
|
||||
addTextField({
|
||||
name: `${prefix}_${varazslatszint}szintu_darab`,
|
||||
x: 194 + xOffset,
|
||||
@@ -41,10 +44,13 @@ function renderPreparedSpells(
|
||||
})
|
||||
}
|
||||
|
||||
function renderEgyszeriVarazslat(
|
||||
addTextField: (options: TextFieldOptions) => PDFTextField,
|
||||
i: number,
|
||||
last?: boolean,) {
|
||||
interface EgyszeriVarazslatFullCaster {
|
||||
addTextField: RenderTextFieldFunc;
|
||||
i: number;
|
||||
last?: boolean;
|
||||
}
|
||||
|
||||
function renderEgyszeriVarazslat({addTextField, i, last}: EgyszeriVarazslatFullCaster) {
|
||||
const offset = 74;
|
||||
addTextField({
|
||||
name: `varazslatlap_full_egyszeri_${i}_nev`,
|
||||
@@ -112,10 +118,13 @@ function renderEgyszeriVarazslat(
|
||||
})
|
||||
}
|
||||
|
||||
function renderEgyszeriVarazslatHalfCaster(
|
||||
addTextField: (options: TextFieldOptions) => PDFTextField,
|
||||
i: number,
|
||||
last?: boolean,) {
|
||||
interface EgyszeriVarazslatHalfCaster {
|
||||
addTextField: RenderTextFieldFunc;
|
||||
i: number;
|
||||
last?: boolean;
|
||||
}
|
||||
|
||||
function renderEgyszeriVarazslatHalfCaster({addTextField, i, last}: EgyszeriVarazslatHalfCaster,) {
|
||||
const offset = 91;
|
||||
addTextField({
|
||||
name: `varazslatlap_half_egyszeri_${i}_nev`,
|
||||
@@ -178,7 +187,7 @@ function renderEgyszeriVarazslatHalfCaster(
|
||||
})
|
||||
}
|
||||
|
||||
export function renderFullCasterVarazslatlap(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||
export function renderFullCasterVarazslatlap(addTextField: RenderTextFieldFunc) {
|
||||
addTextField({
|
||||
name: 'varazslatlap_full_nev_faj_osztaly',
|
||||
x: 56,
|
||||
@@ -194,19 +203,19 @@ export function renderFullCasterVarazslatlap(addTextField: (options: TextFieldOp
|
||||
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 );
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_full', varazslatszint : 0, xOffset : 0, yOffset : 0, max : 7});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_full', varazslatszint : 1, xOffset : 247, yOffset : -20, max : 6, hasBonusz : true});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_full', varazslatszint : 2, xOffset : 0, yOffset : -170, max : 5, hasBonusz : true});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_full', varazslatszint : 3, xOffset : 247, yOffset : -170, max : 5, hasBonusz : true});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_full', varazslatszint : 4, xOffset : 0, yOffset : -301, max : 3} );
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_full', varazslatszint : 5, xOffset : 247, yOffset : -301, max : 3} );
|
||||
|
||||
renderEgyszeriVarazslat(addTextField,0);
|
||||
renderEgyszeriVarazslat(addTextField,1);
|
||||
renderEgyszeriVarazslat(addTextField,2, true);
|
||||
renderEgyszeriVarazslat({addTextField : addTextField, i : 0});
|
||||
renderEgyszeriVarazslat({addTextField : addTextField, i : 1});
|
||||
renderEgyszeriVarazslat({addTextField : addTextField, i : 2, last : true});
|
||||
}
|
||||
|
||||
export function renderHalfCasterVarazslatlap(addTextField: (options: TextFieldOptions) => PDFTextField) {
|
||||
export function renderHalfCasterVarazslatlap(addTextField: RenderTextFieldFunc) {
|
||||
addTextField({
|
||||
name: 'varazslatlap_half_nev_faj_osztaly',
|
||||
x: 56,
|
||||
@@ -222,13 +231,13 @@ export function renderHalfCasterVarazslatlap(addTextField: (options: TextFieldOp
|
||||
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);
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_half', varazslatszint : 0, xOffset : 0, yOffset : -3, max : 5});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_half', varazslatszint : 1, xOffset : 247, yOffset : -3, max : 5});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_half', varazslatszint : 2, xOffset : 0, yOffset : -133, max : 4});
|
||||
renderPreparedSpells({addTextField : addTextField, prefix : 'varazslatlap_half', varazslatszint : 3, xOffset : 247, yOffset : -133, max : 3});
|
||||
|
||||
renderEgyszeriVarazslatHalfCaster(addTextField,0);
|
||||
renderEgyszeriVarazslatHalfCaster(addTextField,1);
|
||||
renderEgyszeriVarazslatHalfCaster(addTextField,2);
|
||||
renderEgyszeriVarazslatHalfCaster(addTextField,3, true);
|
||||
renderEgyszeriVarazslatHalfCaster({addTextField : addTextField, i : 0});
|
||||
renderEgyszeriVarazslatHalfCaster({addTextField : addTextField, i : 1});
|
||||
renderEgyszeriVarazslatHalfCaster({addTextField : addTextField, i : 2});
|
||||
renderEgyszeriVarazslatHalfCaster({addTextField : addTextField, i : 3, last : true});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user