Age | Commit message (Collapse) | Author |
|
|
|
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: :
|
|
|
|
This finally works. My guess is that the library was embedding the font
and, crucially, _subsetting_ the font. But since we don't set any values
before writing out the PDF, it was probably subsetting to 0 glyphs,
effectively making it appear that the desired font wasn't being set.
Forcing no embedding renders the font correctly.
|
|
Still working on this, trying to figure out why the font replacement
isn't working.
|
|
|
|
Don't change all of the input fields' font to the replacement, only
those with a specific font we want to replace.
|
|
Use iText to change the font of interactive form fields in a PDF.
Changes the font in 'f1040.pdf' to Courier.
This code is based on the following example from iText:
https://kb.itextsupport.com/home/it7kb/ebooks/itext-7-jump-start-tutorial-for-net/chapter-5-manipulating-an-existing-pdf-document-net#Chapter5:ManipulatinganexistingPDFdocument|.NET-Changingthepropertiesofformfields
For now I just downloaded the dependencies' JAR files and put them in a
'lib/' directory rather than have to learn how to use a dependency
management tool like Maven. Here is the contents of the 'lib/'
directory:
barcodes-7.2.2.jar
commons-7.2.2.jar
font-asian-7.2.2.jar
forms-7.2.2.jar
hyph-7.2.2.jar
io-7.2.2.jar
kernel-7.2.2.jar
layout-7.2.2.jar
pdfa-7.2.2.jar
pdftest-7.2.2.jar
sign-7.2.2.jar
slf4j-api-1.7.9.jar
styled-xml-parser-7.2.2.jar
svg-7.2.2.jar
To run this:
$ make
$ make run
|