From f409b761be1a65908784d770db3617c2ca9838f3 Mon Sep 17 00:00:00 2001
From: Teddy Wing
Date: Mon, 24 Apr 2023 01:29:28 +0200
Subject: App.java: Start adding command line option parsing
Used the following resources to see how to parse command line options
using commons-cli:
- https://reintech.io/blog/java-command-line-applications-parsing-processing-arguments
- https://commons.apache.org/proper/commons-cli/usage.html
Reusing the options from 'pdf-form-replace-font'.
---
pom.xml | 7 ++++
.../com/teddywing/pdf_form_replace_font2/App.java | 38 ++++++++++++++++++++++
2 files changed, 45 insertions(+)
diff --git a/pom.xml b/pom.xml
index 164523a..c60298c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -29,6 +29,13 @@
compile
+
+ commons-cli
+ commons-cli
+ 1.5.0
+ compile
+
+
junit
junit
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 3c23ba6..c916f62 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,5 +1,12 @@
package com.teddywing.pdf_form_replace_font2;
+import org.apache.commons.cli.CommandLine;
+import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.DefaultParser;
+import org.apache.commons.cli.HelpFormatter;
+import org.apache.commons.cli.Options;
+import org.apache.commons.cli.ParseException;
+
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
@@ -18,6 +25,37 @@ import java.util.Map;
public class App {
public static void main(String[] args) throws IOException {
+ Options options = new Options();
+ options.addOption("f", "find", true, "original font");
+ options.addOption("r", "replace", true, "replacement font");
+ options.addOption("o", "output", true, "output file");
+
+ options.addOption("h", "help", false, "print this help menu");
+ options.addOption("V", "version", false, "show the program version");
+
+ CommandLineParser option_parser = new DefaultParser();
+ try {
+ CommandLine options_matches = option_parser.parse(options, args);
+
+ String find = options_matches.getOptionValue("find");
+ String replace = options_matches.getOptionValue("replace");
+ String output = options_matches.getOptionValue("output");
+
+ boolean should_show_help = options_matches.hasOption("help");
+ boolean should_show_version = options_matches.hasOption("version");
+
+ if (should_show_help) {
+ HelpFormatter help_formatter = new HelpFormatter();
+ help_formatter.printHelp("pdf-form-replace-font2", options);
+
+ System.exit(0);
+ }
+ }
+ catch (ParseException e) {
+ System.err.println("error: " + e.getMessage());
+ System.exit(64);
+ }
+
App.replacePdfFieldFont(
new PdfReader("f1040.pdf"),
new PdfWriter("f1040-courier.pdf"),
--
cgit v1.2.3