aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeddy Wing2023-04-23 04:54:49 +0200
committerTeddy Wing2023-04-23 04:55:33 +0200
commitdff5f939d4a7a87d32f053f8743aa0ad20126fd1 (patch)
tree634ee1aea60d416ad7956e6d025155f89363fe55
parent2863267d76d54b75598d0335a4276afdb38766b3 (diff)
downloadpdf-form-replace-font2-dff5f939d4a7a87d32f053f8743aa0ad20126fd1.tar.bz2
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.
-rw-r--r--Main.java32
1 files 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<String, PdfFormField> 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());
}
}