mirror of
https://github.com/morbalint/kem2karakterlap.git
synced 2026-07-17 23:33:48 +00:00
initial
This commit is contained in:
@@ -0,0 +1,267 @@
|
||||
import {PageSizes, PDFDocument, PDFFont, PDFPage, rgb} from "pdf-lib";
|
||||
import fs from "fs/promises";
|
||||
import fontKit from "@pdf-lib/fontkit"
|
||||
|
||||
|
||||
export async function Karlap() {
|
||||
const docBuffer = await fs.readFile("kem2karakterlap_minden.pdf", {encoding: null, flag: 'r'})
|
||||
const doc = await PDFDocument.load(docBuffer)
|
||||
doc.registerFontkit(fontKit)
|
||||
const fontBuffer = await fs.readFile("fonts/Milonga-Regular.ttf", {encoding: null, flag: 'r'})
|
||||
const pdfFont = await doc.embedFont(fontBuffer)
|
||||
const form = doc.getForm()
|
||||
|
||||
const page0 = doc.getPage(0)
|
||||
|
||||
const addTextFieldToPage = (page: PDFPage) => (options: {name: string, x: number, y: number, w: number, h: number}) => {
|
||||
const field = form.createTextField(options.name)
|
||||
field.addToPage(page0, {
|
||||
x: options.x,
|
||||
y: options.y,
|
||||
font: pdfFont,
|
||||
borderColor: rgb(1,1,1),
|
||||
width: options.w,
|
||||
height: options.h,
|
||||
})
|
||||
}
|
||||
|
||||
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: 203,
|
||||
y: 600,
|
||||
w: 170,
|
||||
h: 16
|
||||
})
|
||||
|
||||
// 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
|
||||
})
|
||||
|
||||
const pdfBytes = await doc.save()
|
||||
|
||||
await fs.writeFile("karlap.pdf", pdfBytes)
|
||||
}
|
||||
Reference in New Issue
Block a user