aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java
diff options
context:
space:
mode:
authorTeddy Wing2023-04-23 20:05:49 +0200
committerTeddy Wing2023-04-23 20:05:49 +0200
commit664aa4aab03d73157996e394e17057c7d7bff430 (patch)
tree47449425f8cbd9c2ab08b2db8b2de0176683abbb /src/main/java
parentcc3bdedf289001e40cfd02c758dacab5ba34d23c (diff)
downloadpdf-form-replace-font2-664aa4aab03d73157996e394e17057c7d7bff430.tar.bz2
Move 'Main.java' to 'App.java'
Build our earlier code with Maven.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/teddywing/pdf_form_replace_font2/App.java77
1 files changed, 67 insertions, 10 deletions
diff --git a/src/main/java/com/teddywing/pdf_form_replace_font2/App.java b/src/main/java/com/teddywing/pdf_form_replace_font2/App.java
index ff3fbaf..2fb907b 100644
--- a/src/main/java/com/teddywing/pdf_form_replace_font2/App.java
+++ b/src/main/java/com/teddywing/pdf_form_replace_font2/App.java
@@ -1,13 +1,70 @@
package com.teddywing.pdf_form_replace_font2;
-/**
- * Hello world!
- *
- */
-public class App
-{
- public static void main( String[] args )
- {
- System.out.println( "Hello World!" );
- }
+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.*;
+
+import java.io.*;
+import java.util.Map;
+
+public class App {
+
+ public static void main(String[] args) throws IOException {
+ PdfDocument pdf = new PdfDocument(
+ new PdfReader("f1040.pdf"),
+ new PdfWriter("f1040-courier.pdf")
+ );
+
+ // 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());
+
+ // 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.FORCE_NOT_EMBEDDED);
+
+ PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, false);
+ Map<String, PdfFormField> fields = form.getFormFields();
+
+ for (var entry : fields.entrySet()) {
+ // TODO: Try printing original font family and size on field.
+ PdfFormField field = entry.getValue();
+
+ PdfFont original_font = field.getFont();
+ // System.out.println("Font: " + field.getFontSize());
+
+ String original_postscript_name = original_font
+ .getFontProgram()
+ .getFontNames()
+ .getFontName();
+
+ if (original_postscript_name.equals("HelveticaLTStd-Bold")) {
+ field.setFont(courier);
+ // System.out.println("F: " + field.getFont());
+ // System.out.println("R: " + field.regenerateField());
+ }
+ }
+
+ pdf.close();
+ }
}