Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quiet the following warning output that appeared when running the
executable:
$ java -jar target/pdf-form-replace-font2-0.0.1-SNAPSHOT.jar --find HelveticaLTStd-Bold --replace CourierNewPSMT --output f1040-courier.pdf f1040.pdf
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
|
|
|
|
I'm not using tests here, so rather than keep useless tests cluttering
the project I decided to remove them.
This causes the `mvn package` task to fail, so I added a skip test
configuration on the Maven Surefire plugin as described by smp7d
(https://stackoverflow.com/users/395975/smp7d) on Stack Overflow:
https://stackoverflow.com/questions/7456006/maven-package-install-without-test-skip-tests/7502723#7502723
|
|
I had used Java 11 in order to use the `var` syntax, which seemed
pleasantly more concise, however, I discovered that the machine I want
to deploy this application to only has a Java 8 SDK, and I don't want to
bother messing with it and going on a potential yak shaving quest.
|
|
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'.
|
|
Package everything including our dependencies into a single JAR file.
Thanks to these Stack Overflow answers for explaining that I needed to
exclude the signature files from the final package:
- https://stackoverflow.com/questions/999489/invalid-signature-file-when-attempting-to-run-a-jar/6743609#6743609
- https://stackoverflow.com/questions/34855649/invalid-signature-file-digest-for-manifest-main-attributes-exception-while-tryin/34856095#34856095
|
|
Build our earlier code with Maven.
|
|
Thanks to this Stack Overflow answer by Raphaƫl Colantonio
(https://stackoverflow.com/users/3728901/rapha%c3%abl-colantonio) for
the tip about type:pom :
https://stackoverflow.com/questions/70086051/itextpdf-dependency-not-found-by-maven/70090910#70090910
Without that tag, the compile failed.
|
|
The previous one wouldn't compile because I used hyphens in my package
name. Regenerate the project structure replacing the hyphens with
underscores:
$ mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-simple -DarchetypeVersion=1.4
...
Define value for property 'groupId': com.teddywing.pdf_form_replace_font2
Define value for property 'artifactId': pdf-form-replace-font2
Define value for property 'version' 1.0-SNAPSHOT: : 0.0.1-SNAPSHOT
Define value for property 'package' com.teddywing.pdf_form_replace_font2: :
Confirm properties configuration:
groupId: com.teddywing.pdf_form_replace_font2
artifactId: pdf-form-replace-font2
version: 0.0.1-SNAPSHOT
package: com.teddywing.pdf_form_replace_font2
Y: :
|
|
I followed the Maven Getting Started
(https://maven.apache.org/guides/getting-started/index.html) guide to
set up a project structure so I could use it to manage dependencies. I
picked the 'maven-archetype-simple' archetype
(https://maven.apache.org/archetypes/maven-archetype-simple/).
This code was generated with the following command and interactive
prompts:
$ mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-simple -DarchetypeVersion=1.4
Define value for property 'groupId': com.teddywing.pdf-form-replace-font2
Define value for property 'artifactId': pdf-form-replace-font2
Define value for property 'version' 1.0-SNAPSHOT: : 0.0.1-SNAPSHOT
Define value for property 'package' com.teddywing.pdf-form-replace-font2: :
Confirm properties configuration:
groupId: com.teddywing.pdf-form-replace-font2
artifactId: pdf-form-replace-font2
version: 0.0.1-SNAPSHOT
package: com.teddywing.pdf-form-replace-font2
Y: :
|