diff options
author | Teddy Wing | 2023-04-24 01:29:28 +0200 |
---|---|---|
committer | Teddy Wing | 2023-04-24 01:29:28 +0200 |
commit | f409b761be1a65908784d770db3617c2ca9838f3 (patch) | |
tree | 51001f7eaf5a98d63ed051111732806fdb9f8c2f | |
parent | 8c5a16e708c85cfbe0fd1d8b73defca761f54731 (diff) | |
download | pdf-form-replace-font2-f409b761be1a65908784d770db3617c2ca9838f3.tar.bz2 |
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'.
-rw-r--r-- | pom.xml | 7 | ||||
-rw-r--r-- | src/main/java/com/teddywing/pdf_form_replace_font2/App.java | 38 |
2 files changed, 45 insertions, 0 deletions
@@ -30,6 +30,13 @@ </dependency> <dependency> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>1.5.0</version> + <scope>compile</scope> + </dependency> + + <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> 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"), |