From dff5f939d4a7a87d32f053f8743aa0ad20126fd1 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sun, 23 Apr 2023 04:54:49 +0200 Subject: Main.java: Trying to use a TTF to replace the font, not working Still working on this, trying to figure out why the font replacement isn't working. --- Main.java | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/Main.java b/Main.java index c58f444..fd4a8d5 100644 --- a/Main.java +++ b/Main.java @@ -1,6 +1,9 @@ import com.itextpdf.kernel.pdf.*; import com.itextpdf.kernel.font.*; import com.itextpdf.io.font.constants.StandardFonts; +import com.itextpdf.io.font.FontProgram; +import com.itextpdf.io.font.FontProgramFactory; +import com.itextpdf.io.font.PdfEncodings; import com.itextpdf.forms.*; import com.itextpdf.forms.fields.*; @@ -14,9 +17,30 @@ public class Main { new PdfWriter("f1040-courier.pdf") ); - PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, false); + // FontProgramFactory.registerSystemFontDirectories(); + // FontProgramFactory.registerFontDirectory("/System/Library/Fonts/"); + FontProgramFactory.registerFontDirectory("/System/Library/Fonts/Supplemental/"); + // FontProgramFactory + // .registerFont("/System/Library/Fonts/Supplemental/Courier New.ttf", "hihoaliaso"); + // System.out.println("is registered: " + // + FontProgramFactory.isRegisteredFont("CourierNewPSMT")); + + System.out.println(FontProgramFactory.getRegisteredFonts()); + System.out.println(FontProgramFactory.getRegisteredFontFamilies()); - PdfFont courier = PdfFontFactory.createFont(StandardFonts.COURIER); + // FontProgram courier_program = FontProgramFactory.createFont("CourierNewPSMT"); + // FontProgram courier_program = FontProgramFactory + // .createFont("/System/Library/Fonts/Supplemental/Courier New.ttf"); + // FontProgram courier_program = FontProgramFactory + // .createRegisteredFont("CourierNewPSMT"); + // FontProgram courier_program = FontProgramFactory + // .createFont("Courier New.ttf"); + FontProgram courier_program = FontProgramFactory + .createFont("/System/Library/Fonts/Supplemental/Copperplate.ttc", 0, false); + PdfFont courier = PdfFontFactory + .createFont(courier_program, PdfEncodings.UTF8, PdfFontFactory.EmbeddingStrategy.PREFER_EMBEDDED); + + PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, false); Map fields = form.getFormFields(); for (var entry : fields.entrySet()) { @@ -24,7 +48,7 @@ public class Main { PdfFormField field = entry.getValue(); PdfFont original_font = field.getFont(); - System.out.println("Font: " + field.getFontSize()); + // System.out.println("Font: " + field.getFontSize()); String original_postscript_name = original_font .getFontProgram() @@ -33,6 +57,8 @@ public class Main { if (original_postscript_name.equals("HelveticaLTStd-Bold")) { field.setFont(courier); + // System.out.println("F: " + field.getFont()); + // System.out.println("R: " + field.regenerateField()); } } -- cgit v1.2.3