diff options
| -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(); +	}  } | 
