[ 
https://issues.apache.org/jira/browse/PDFBOX-3597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15701808#comment-15701808
 ] 

Matt Wise commented on PDFBOX-3597:
-----------------------------------

Thank you for your quick response Maruan.  Please correct me as I seem to 
misunderstand.  As I understood, since I am subsetting the font it is being 
added as a separate resource, when running the provided script, the initial 
font is indeed ArialUnicodeMS, however after calling font.subset() the name 
returned is F3.  Also, since I then set the DA to reflect the updated name, I 
am still confused why it is trying to use the original name as the appearance.

Also, since my use case is to load the values from an xfdf file, gather the 
added characters and embed a subset of the font that matches the field values, 
is there a better way to generate a subset of a font without adding it to the 
DR entry of the AcroForm?  Or will I be forced to manually parse the input and 
set the values by hand after adding the subset to the AcroForm's DR entry?

> PDAcroForm.refreshAppearances() does not respect updated fonts
> --------------------------------------------------------------
>
>                 Key: PDFBOX-3597
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3597
>             Project: PDFBox
>          Issue Type: Bug
>          Components: PDModel
>    Affects Versions: 2.0.3
>            Reporter: Matt Wise
>
> I have attached example files in the External issue URL link.
> I am trying to embed a subset of a font into my pdf after populating the 
> fields.  If I don't run refreshAppearances() the values will be put into the 
> fields, but will only be visible when the field is selected (likely another 
> bug).
> To work around this, I am trying to set the default appearance on the fields 
> manually to reflect the embedded font.  If I embed the whole font, it works 
> as expected, however when I try to embed a subset of the font it fails:
> Exception in thread "main" java.lang.IllegalArgumentException: No glyph for 
> U+540D in font AAWTXC+ArialUnicodeMS
>       at 
> org.apache.pdfbox.pdmodel.font.PDCIDFontType2.encode(PDCIDFontType2.java:400)
>       at 
> org.apache.pdfbox.pdmodel.font.PDType0Font.encode(PDType0Font.java:351)
>       at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:316)
>       at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:345)
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.PlainTextFormatter.format(PlainTextFormatter.java:195)
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.insertGeneratedAppearance(AppearanceGeneratorHelper.java:422)
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:288)
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:170)
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:263)
>       at 
> org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.refreshAppearances(PDAcroForm.java:318)
>       at test_pdfbox.TestPDFBox.main(TestPDFBox.java:45)
> It would appear that after I call form.setDefaultResources with the updated 
> font, refreshAppearances is still trying to use the old font as the 
> appearance, although I may be wrong.
> Expected:
> appearances are updated, subset of font is embedded.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to