[[oktatas:programozás:java:java_pdf|< Java PDF]]
====== Java PDF generálás - itext9 ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Maven függőségek =====
A magyar ékezetesekhez szükség van a font-asian csomagra is.
com.itextpdf
kernel
9.0.0
com.itextpdf
layout
9.0.0
com.itextpdf
io
9.0.0
com.itextpdf
font-asian
9.0.0
===== Moduláris Java projekt esetén =====
A ITextPdf sajnos nem moduláris, így csak automatikus modulbetöltést tudunk beállítani:
requires transitive kernel;
requires transitive layout;
requires transitive io;
requires transitive font.asian;
Egy JavaFX projektben például az egész module-info.java fájl:
module com.example {
requires transitive javafx.graphics;
requires javafx.controls;
requires javafx.fxml;
requires transitive kernel;
requires transitive layout;
requires transitive io;
requires transitive font.asian;
opens com.example to javafx.fxml;
exports com.example;
}
===== Példa ékezetes szöveghez =====
package com.example;
import java.io.IOException;
import com.itextpdf.io.font.FontProgram;
import com.itextpdf.io.font.FontProgramFactory;
import com.itextpdf.io.font.PdfEncodings;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Text;
public class Gen {
public static void genPdf() {
try {
PdfWriter pdfWriter = new PdfWriter("data.pdf");
PdfDocument pdfDocument = new PdfDocument(pdfWriter);
Document document = new Document(pdfDocument);
FontProgram program = FontProgramFactory.createFont();
PdfFont font = PdfFontFactory.createFont(program, PdfEncodings.CP1250);
Text text = new Text("árvíztűrő tükörfúrógép").setFont(font);
Paragraph paragraph = new Paragraph(text);
document.add(paragraph);
document.close();
}catch(IOException e) {
System.err.println("Hiba! A PDF írása sikeretelen!");
System.err.println(e.getMessage());
}
}
}
===== Linkek =====
Az automatikus modulokról:
* https://openjdk.org/projects/jigsaw/spec/sotms/#automatic-modules (2024)
Fonthasználat:
* https://kb.itextpdf.com/itext/chapter-1-introducing-fonts (2024)