mirror of
https://github.com/morbalint/kemkas.git
synced 2026-07-17 19:03:46 +00:00
add kepzettsegek to the PDF
This commit is contained in:
@@ -23,3 +23,8 @@ yarn-debug.log*
|
|||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
|
|
||||||
*.css.map
|
*.css.map
|
||||||
|
|
||||||
|
# local temp files
|
||||||
|
/tmp
|
||||||
|
/temp
|
||||||
|
/local
|
||||||
@@ -3,6 +3,7 @@
|
|||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@pdf-lib/fontkit": "^1.1.1",
|
||||||
"@testing-library/jest-dom": "^5.17.0",
|
"@testing-library/jest-dom": "^5.17.0",
|
||||||
"@testing-library/react": "^13.4.0",
|
"@testing-library/react": "^13.4.0",
|
||||||
"@testing-library/user-event": "^13.5.0",
|
"@testing-library/user-event": "^13.5.0",
|
||||||
|
|||||||
Binary file not shown.
@@ -2,12 +2,14 @@ import {Faj} from "./faj";
|
|||||||
import {Osztaly} from "./osztaly";
|
import {Osztaly} from "./osztaly";
|
||||||
import {KarakterTulajdonsagok, Modifier} from "./tulajdonsag";
|
import {KarakterTulajdonsagok, Modifier} from "./tulajdonsag";
|
||||||
import {CalculateMasodlagosErtekek, KarakterMasodlagosErtekek} from "./masodlagos_ertekek";
|
import {CalculateMasodlagosErtekek, KarakterMasodlagosErtekek} from "./masodlagos_ertekek";
|
||||||
|
import {Kepzettseg} from "./kepzettsegek";
|
||||||
|
|
||||||
export interface Karakter {
|
export interface Karakter {
|
||||||
Name: string
|
Name: string
|
||||||
Faj: Faj
|
Faj: Faj
|
||||||
Osztaly: Osztaly
|
Osztaly: Osztaly
|
||||||
Tulajdonsagok: KarakterTulajdonsagok,
|
Tulajdonsagok: KarakterTulajdonsagok,
|
||||||
|
Szint: number
|
||||||
MasodlagosErtekek: KarakterMasodlagosErtekek
|
MasodlagosErtekek: KarakterMasodlagosErtekek
|
||||||
HP: () => number
|
HP: () => number
|
||||||
VO: () => number
|
VO: () => number
|
||||||
@@ -18,6 +20,8 @@ export interface Karakter {
|
|||||||
KitartasMentoAlap: () => number
|
KitartasMentoAlap: () => number
|
||||||
ReflexMentoAlap: () => number
|
ReflexMentoAlap: () => number
|
||||||
AkarateroMentoAlap: () => number
|
AkarateroMentoAlap: () => number
|
||||||
|
Kepzettsegek: Kepzettseg[]
|
||||||
|
TolvajKepzettsegek: Kepzettseg[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export class KarakterClass implements Karakter {
|
export class KarakterClass implements Karakter {
|
||||||
@@ -26,14 +30,26 @@ export class KarakterClass implements Karakter {
|
|||||||
public Faj : Faj
|
public Faj : Faj
|
||||||
public Osztaly : Osztaly
|
public Osztaly : Osztaly
|
||||||
public Tulajdonsagok : KarakterTulajdonsagok
|
public Tulajdonsagok : KarakterTulajdonsagok
|
||||||
|
public Szint : number = 1
|
||||||
public MasodlagosErtekek : KarakterMasodlagosErtekek
|
public MasodlagosErtekek : KarakterMasodlagosErtekek
|
||||||
|
public Kepzettsegek: Kepzettseg[]
|
||||||
|
public TolvajKepzettsegek: Kepzettseg[]
|
||||||
|
|
||||||
constructor(name: string, faj: Faj, osztaly: Osztaly, tulajdonsagok: KarakterTulajdonsagok) {
|
constructor(
|
||||||
|
name: string,
|
||||||
|
faj: Faj,
|
||||||
|
osztaly: Osztaly,
|
||||||
|
tulajdonsagok: KarakterTulajdonsagok,
|
||||||
|
kepzettsegek: Kepzettseg[],
|
||||||
|
tolvajKepzettsegek: Kepzettseg[] = []
|
||||||
|
) {
|
||||||
this.Name = name
|
this.Name = name
|
||||||
this.Faj = faj
|
this.Faj = faj
|
||||||
this.Osztaly = osztaly
|
this.Osztaly = osztaly
|
||||||
this.Tulajdonsagok = tulajdonsagok
|
this.Tulajdonsagok = tulajdonsagok
|
||||||
this.MasodlagosErtekek = CalculateMasodlagosErtekek(osztaly, tulajdonsagok)
|
this.MasodlagosErtekek = CalculateMasodlagosErtekek(osztaly, tulajdonsagok)
|
||||||
|
this.Kepzettsegek = kepzettsegek
|
||||||
|
this.TolvajKepzettsegek = tolvajKepzettsegek
|
||||||
}
|
}
|
||||||
|
|
||||||
public HP = () => this.MasodlagosErtekek.HP
|
public HP = () => this.MasodlagosErtekek.HP
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export const KepzettsegLista: Kepzettseg[] = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
Id: 'k_csapdak',
|
Id: 'k_csapdak',
|
||||||
Name: 'Csapdák állítása/eltávolítása',
|
Name: 'Csapdák állítása',
|
||||||
Description: 'A karakter a rendelkezésre álló idő és alapanyagok függvényében készíthet szimpla vagy komplex csapdákat. Ha egy csapda eltávolítására tett próba sikertelen, az bizonyos eséllyel kisülhet és veszélybe sodorhatja az óvatlan próbálkozót.',
|
Description: 'A karakter a rendelkezésre álló idő és alapanyagok függvényében készíthet szimpla vagy komplex csapdákat. Ha egy csapda eltávolítására tett próba sikertelen, az bizonyos eséllyel kisülhet és veszélybe sodorhatja az óvatlan próbálkozót.',
|
||||||
Tulajdonsag: [Tulajdonsag.Ugyesseg],
|
Tulajdonsag: [Tulajdonsag.Ugyesseg],
|
||||||
Osztalyok: [Osztaly.Tolvaj],
|
Osztalyok: [Osztaly.Tolvaj],
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import OsztalySelector from "../components/OsztalySelector";
|
|||||||
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
|
import KarakterKepzettsegek from "../components/KarakterKepzettsegek";
|
||||||
import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag";
|
import {KarakterTulajdonsagok, Modifier} from "../domain-models/tulajdonsag";
|
||||||
import MasodlagosErtekek from "../components/MasodlagosErtekek";
|
import MasodlagosErtekek from "../components/MasodlagosErtekek";
|
||||||
import {AvailableKezpettsegList, KepzettsegId, TolvajKepzettsegList} from "../domain-models/kepzettsegek";
|
import {AvailableKezpettsegList, Kepzettsegek, KepzettsegId, TolvajKepzettsegList} from "../domain-models/kepzettsegek";
|
||||||
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
|
import {CalculateMasodlagosErtekek} from "../domain-models/masodlagos_ertekek";
|
||||||
import {CreatePDF} from "../pdf/character.pdf";
|
import {CreatePDF} from "../pdf/character.pdf";
|
||||||
import {KarakterClass} from "../domain-models/karakter";
|
import {KarakterClass} from "../domain-models/karakter";
|
||||||
@@ -56,6 +56,15 @@ function CreateCharacterPage() {
|
|||||||
changeTolvajKepzettsegek(tolvajKepzettsegek)
|
changeTolvajKepzettsegek(tolvajKepzettsegek)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const karakter = () => new KarakterClass(
|
||||||
|
name,
|
||||||
|
faj,
|
||||||
|
osztaly,
|
||||||
|
tulajdonsagok,
|
||||||
|
kepzettsegek.map(k => Kepzettsegek[k]),
|
||||||
|
osztaly === Osztaly.Tolvaj ? tolvajKepzettsegek.map(k => Kepzettsegek[k]) : []
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className='container-fluid p-5 bg-black text-white text-center'>
|
<div className='container-fluid p-5 bg-black text-white text-center'>
|
||||||
@@ -105,7 +114,7 @@ function CreateCharacterPage() {
|
|||||||
<MasodlagosErtekek ertekek={CalculateMasodlagosErtekek(osztaly, tulajdonsagok)} />
|
<MasodlagosErtekek ertekek={CalculateMasodlagosErtekek(osztaly, tulajdonsagok)} />
|
||||||
|
|
||||||
<div className='d-grid gap-2 m-5'>
|
<div className='d-grid gap-2 m-5'>
|
||||||
<button className='btn btn-danger btn-lg' type='button' onClick={async () => await CreatePDF(new KarakterClass(name, faj, osztaly, tulajdonsagok))}>Létrehozás</button>
|
<button className='btn btn-danger btn-lg' type='button' onClick={async () => await CreatePDF(karakter())}>Létrehozás</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+108
-69
@@ -1,240 +1,279 @@
|
|||||||
import {Karakter} from "../domain-models/karakter";
|
import {Karakter} from "../domain-models/karakter";
|
||||||
import {PDFDocument, rgb, StandardFonts} from "pdf-lib";
|
import {PDFDocument, rgb} from "pdf-lib";
|
||||||
|
import fontkit from '@pdf-lib/fontkit'
|
||||||
import {OsztalyLabel} from "../domain-models/osztaly";
|
import {OsztalyLabel} from "../domain-models/osztaly";
|
||||||
import {FajLabel} from "../domain-models/faj";
|
import {FajLabel} from "../domain-models/faj";
|
||||||
import {SignedNumberToText} from "../components/Helpers";
|
import {SignedNumberToText} from "../components/Helpers";
|
||||||
import {Modifier} from "../domain-models/tulajdonsag";
|
import {Modifier} from "../domain-models/tulajdonsag";
|
||||||
import download from "downloadjs";
|
import download from "downloadjs";
|
||||||
|
import {Kepzettseg} from "../domain-models/kepzettsegek";
|
||||||
|
|
||||||
export async function CreatePDF(karakter: Karakter) {
|
export async function CreatePDF(karakter: Karakter) {
|
||||||
|
|
||||||
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)
|
||||||
|
|
||||||
const timesRomanFont = await pdfDoc.embedFont(StandardFonts.Helvetica)
|
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 page = pdfDoc.getPage(0)
|
const page = pdfDoc.getPage(0)
|
||||||
const fontSize = 12
|
|
||||||
page.drawText(karakter.Name, {
|
page.drawText(karakter.Name, {
|
||||||
x: 60,
|
x: 60,
|
||||||
y: 710,
|
y: 710,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(OsztalyLabel(karakter.Osztaly), {
|
page.drawText(OsztalyLabel(karakter.Osztaly), {
|
||||||
x: 60,
|
x: 60,
|
||||||
y: 672,
|
y: 672,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText('1', {
|
page.drawText(karakter.Szint.toString(), {
|
||||||
x: 264,
|
x: 264,
|
||||||
y: 682,
|
y: 682,
|
||||||
size: fontSize * 3,
|
size: fontSizeBase * 3,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(FajLabel(karakter.Faj), {
|
page.drawText(FajLabel(karakter.Faj), {
|
||||||
x: 304,
|
x: 304,
|
||||||
y: 710,
|
y: 710,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.Tulajdonsagok.t_ero.toString(), {
|
page.drawText(karakter.Tulajdonsagok.t_ero.toString(), {
|
||||||
x: 130,
|
x: 130,
|
||||||
y: 613,
|
y: 613,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_ero)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_ero)), {
|
||||||
x: 176,
|
x: 176,
|
||||||
y: 613,
|
y: 613,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.Tulajdonsagok.t_ugy.toString(), {
|
page.drawText(karakter.Tulajdonsagok.t_ugy.toString(), {
|
||||||
x: 130,
|
x: 130,
|
||||||
y: 580,
|
y: 580,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_ugy)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_ugy)), {
|
||||||
x: 176,
|
x: 176,
|
||||||
y: 580,
|
y: 580,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.Tulajdonsagok.t_egs.toString(), {
|
page.drawText(karakter.Tulajdonsagok.t_egs.toString(), {
|
||||||
x: 130,
|
x: 130,
|
||||||
y: 547,
|
y: 547,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_egs)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_egs)), {
|
||||||
x: 176,
|
x: 176,
|
||||||
y: 547,
|
y: 547,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.Tulajdonsagok.t_int.toString(), {
|
page.drawText(karakter.Tulajdonsagok.t_int.toString(), {
|
||||||
x: 130,
|
x: 130,
|
||||||
y: 515,
|
y: 515,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_int)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_int)), {
|
||||||
x: 176,
|
x: 176,
|
||||||
y: 515,
|
y: 515,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.Tulajdonsagok.t_bol.toString(), {
|
page.drawText(karakter.Tulajdonsagok.t_bol.toString(), {
|
||||||
x: 130,
|
x: 130,
|
||||||
y: 482,
|
y: 482,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_bol)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_bol)), {
|
||||||
x: 176,
|
x: 176,
|
||||||
y: 482,
|
y: 482,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.Tulajdonsagok.t_kar.toString(), {
|
page.drawText(karakter.Tulajdonsagok.t_kar.toString(), {
|
||||||
x: 130,
|
x: 130,
|
||||||
y: 449,
|
y: 449,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_kar)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_kar)), {
|
||||||
x: 176,
|
x: 176,
|
||||||
y: 449,
|
y: 449,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
|
|
||||||
page.drawText(karakter.Mozgas().toString(), {
|
page.drawText(karakter.Mozgas().toString(), {
|
||||||
x: 162,
|
x: 162,
|
||||||
y: 416,
|
y: 416,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.Kezdemenyezes()), {
|
page.drawText(SignedNumberToText(karakter.Kezdemenyezes()), {
|
||||||
x: 505,
|
x: 505,
|
||||||
y: 416,
|
y: 416,
|
||||||
size: fontSize * 2,
|
size: fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.HP().toString(), {
|
page.drawText(karakter.HP().toString(), {
|
||||||
x: 318,
|
x: 318,
|
||||||
y: 517,
|
y: 517,
|
||||||
size: fontSize * 1.5,
|
size: fontSizeBase * 1.5,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(karakter.VO().toString(), {
|
page.drawText(karakter.VO().toString(), {
|
||||||
x: 368,
|
x: 368,
|
||||||
y: 495,
|
y: 495,
|
||||||
size: fontSize * 3,
|
size: fontSizeBase * 3,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0.5, 0.5, 0.5),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.KozelharciTB()), {
|
const kozelharciTB = SignedNumberToText(karakter.KozelharciTB())
|
||||||
|
page.drawText(kozelharciTB, {
|
||||||
x: 258,
|
x: 258,
|
||||||
y: 382,
|
y: 382,
|
||||||
size: fontSize * 2,
|
size: kozelharciTB.length > 2 ? (fontSizeBase * 1.5) : fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.CelzoTB()), {
|
const celzoTB = SignedNumberToText(karakter.CelzoTB())
|
||||||
|
page.drawText(celzoTB, {
|
||||||
x: 347,
|
x: 347,
|
||||||
y: 382,
|
y: 382,
|
||||||
size: fontSize * 2,
|
size: celzoTB.length > 2 ? (fontSizeBase * 1.5) : fontSizeBase * 2,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
|
|
||||||
page.drawText(SignedNumberToText(karakter.KitartasMentoAlap()), {
|
page.drawText(SignedNumberToText(karakter.KitartasMentoAlap()), {
|
||||||
x: 435,
|
x: 435,
|
||||||
y: 613,
|
y: 613,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.ReflexMentoAlap()), {
|
page.drawText(SignedNumberToText(karakter.ReflexMentoAlap()), {
|
||||||
x: 435,
|
x: 435,
|
||||||
y: 580,
|
y: 580,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.AkarateroMentoAlap()), {
|
page.drawText(SignedNumberToText(karakter.AkarateroMentoAlap()), {
|
||||||
x: 435,
|
x: 435,
|
||||||
y: 547,
|
y: 547,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_egs)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_egs)), {
|
||||||
x: 475,
|
x: 475,
|
||||||
y: 613,
|
y: 613,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_ugy)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_ugy)), {
|
||||||
x: 475,
|
x: 475,
|
||||||
y: 580,
|
y: 580,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_bol)), {
|
page.drawText(SignedNumberToText(Modifier(karakter.Tulajdonsagok.t_bol)), {
|
||||||
x: 475,
|
x: 475,
|
||||||
y: 547,
|
y: 547,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.KitartasMentoAlap() + Modifier(karakter.Tulajdonsagok.t_egs)), {
|
page.drawText(SignedNumberToText(karakter.KitartasMentoAlap() + Modifier(karakter.Tulajdonsagok.t_egs)), {
|
||||||
x: 515,
|
x: 515,
|
||||||
y: 613,
|
y: 613,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.ReflexMentoAlap() + Modifier(karakter.Tulajdonsagok.t_ugy)), {
|
page.drawText(SignedNumberToText(karakter.ReflexMentoAlap() + Modifier(karakter.Tulajdonsagok.t_ugy)), {
|
||||||
x: 515,
|
x: 515,
|
||||||
y: 580,
|
y: 580,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
page.drawText(SignedNumberToText(karakter.AkarateroMentoAlap() + Modifier(karakter.Tulajdonsagok.t_bol)), {
|
page.drawText(SignedNumberToText(karakter.AkarateroMentoAlap() + Modifier(karakter.Tulajdonsagok.t_bol)), {
|
||||||
x: 515,
|
x: 515,
|
||||||
y: 547,
|
y: 547,
|
||||||
size: fontSize,
|
size: fontSizeBase,
|
||||||
font: timesRomanFont,
|
font: pdfFont,
|
||||||
color: rgb(0, 0, 0),
|
color: rgb(0, 0, 0),
|
||||||
})
|
})
|
||||||
|
|
||||||
|
function DrawKepzettsegek(kepzettsegek: Kepzettseg[], startFrom: number) {
|
||||||
|
for (let i = 0; i < kepzettsegek.length; i++) {
|
||||||
|
let kepzettseg = kepzettsegek[i]
|
||||||
|
page.drawText(kepzettseg.Name, {
|
||||||
|
x: 60,
|
||||||
|
y: startFrom - (i * 18),
|
||||||
|
size: fontSizeBase,
|
||||||
|
font: pdfFont,
|
||||||
|
color: rgb(0, 0, 0),
|
||||||
|
})
|
||||||
|
const tulajdonsagErtek = kepzettseg.Tulajdonsag.reduce((maxTulajdonsagErtek, currentTulajdonsag) =>
|
||||||
|
(karakter.Tulajdonsagok[currentTulajdonsag] > maxTulajdonsagErtek)
|
||||||
|
? karakter.Tulajdonsagok[kepzettseg.Tulajdonsag[i]]
|
||||||
|
: maxTulajdonsagErtek,
|
||||||
|
karakter.Tulajdonsagok[kepzettseg.Tulajdonsag[0]])
|
||||||
|
|
||||||
|
const kepzettsegModifier = SignedNumberToText(Modifier(tulajdonsagErtek) + karakter.Szint)
|
||||||
|
page.drawText(kepzettsegModifier, {
|
||||||
|
x: kepzettsegModifier.length > 2 ? 172 : 175,
|
||||||
|
y: startFrom - (i * 18),
|
||||||
|
size: fontSizeBase,
|
||||||
|
font: pdfFont,
|
||||||
|
color: rgb(0, 0, 0),
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DrawKepzettsegek(karakter.Kepzettsegek, 337);
|
||||||
|
const nextKepzettsegFrom = 337 - (karakter.Kepzettsegek.length * 18)
|
||||||
|
DrawKepzettsegek(karakter.TolvajKepzettsegek, nextKepzettsegFrom)
|
||||||
|
|
||||||
const pdfBytes = await pdfDoc.save();
|
const pdfBytes = await pdfDoc.save();
|
||||||
download(pdfBytes, karakter.Name + ".pdf", "application/pdf");
|
download(pdfBytes, karakter.Name + ".pdf", "application/pdf");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1675,6 +1675,13 @@
|
|||||||
"@nodelib/fs.scandir" "2.1.5"
|
"@nodelib/fs.scandir" "2.1.5"
|
||||||
fastq "^1.6.0"
|
fastq "^1.6.0"
|
||||||
|
|
||||||
|
"@pdf-lib/fontkit@^1.1.1":
|
||||||
|
version "1.1.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@pdf-lib/fontkit/-/fontkit-1.1.1.tgz#f18473892b65e3253eb73f4569785abd2c03b1e0"
|
||||||
|
integrity sha512-KjMd7grNapIWS/Dm0gvfHEilSyAmeLvrEGVcqLGi0VYebuqqzTbgF29efCx7tvx+IEbG3zQciRSWl3GkUSvjZg==
|
||||||
|
dependencies:
|
||||||
|
pako "^1.0.6"
|
||||||
|
|
||||||
"@pdf-lib/standard-fonts@^1.0.0":
|
"@pdf-lib/standard-fonts@^1.0.0":
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz#8ba691c4421f71662ed07c9a0294b44528af2d7f"
|
resolved "https://registry.yarnpkg.com/@pdf-lib/standard-fonts/-/standard-fonts-1.0.0.tgz#8ba691c4421f71662ed07c9a0294b44528af2d7f"
|
||||||
|
|||||||
Reference in New Issue
Block a user