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 /src/main | |
| parent | cc3bdedf289001e40cfd02c758dacab5ba34d23c (diff) | |
| download | pdf-form-replace-font2-664aa4aab03d73157996e394e17057c7d7bff430.tar.bz2 | |
Move 'Main.java' to 'App.java'
Build our earlier code with Maven.
Diffstat (limited to 'src/main')
| -rw-r--r-- | src/main/java/com/teddywing/pdf_form_replace_font2/App.java | 77 | 
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(); +	}  } | 
