diff options
author | Teddy Wing | 2023-04-23 20:05:49 +0200 |
---|---|---|
committer | Teddy Wing | 2023-04-23 20:05:49 +0200 |
commit | 664aa4aab03d73157996e394e17057c7d7bff430 (patch) | |
tree | 47449425f8cbd9c2ab08b2db8b2de0176683abbb | |
parent | cc3bdedf289001e40cfd02c758dacab5ba34d23c (diff) | |
download | pdf-form-replace-font2-664aa4aab03d73157996e394e17057c7d7bff430.tar.bz2 |
Move 'Main.java' to 'App.java'
Build our earlier code with Maven.
-rw-r--r-- | Main.java | 67 | ||||
-rw-r--r-- | Makefile | 8 | ||||
-rw-r--r-- | pom.xml | 4 | ||||
-rw-r--r-- | src/main/java/com/teddywing/pdf_form_replace_font2/App.java | 77 |
4 files changed, 75 insertions, 81 deletions
diff --git a/Main.java b/Main.java deleted file mode 100644 index b69dcd3..0000000 --- a/Main.java +++ /dev/null @@ -1,67 +0,0 @@ -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 Main { - 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(); - } -} @@ -3,6 +3,10 @@ CLASSPATH := -classpath '.:./lib/*' all: javac $(CLASSPATH) Main.java +.PHONY: compile +compile: + mvn compile + .PHONY: run -run: - java $(CLASSPATH) Main +run: compile + mvn exec:java -Dexec.mainClass='com.teddywing.pdf_form_replace_font2.App' @@ -16,8 +16,8 @@ <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.source>1.7</maven.compiler.source> - <maven.compiler.target>1.7</maven.compiler.target> + <maven.compiler.source>11</maven.compiler.source> + <maven.compiler.target>11</maven.compiler.target> </properties> <dependencies> 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(); + } } |