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

Maruan Sahyoun commented on PDFBOX-3597:
----------------------------------------

I haven't checked the code in detail but compared the PDFs which were 
generated. I'll look at the code later today. In the current form the DA uses 
ArialUnicodeMS for both the original template and the updated template. As the 
DA uses a name which is already existing in the fields resource entry a 
possibly update font in the AcroForm DR entry will not be read. 

Again I will check the code to see if there is an issue there.

Now to the question of subsetting a font for an interactive field. This will 
only make sense if you are sure that there will be no subsequent change to the 
fields value as there might be glyphs missing for a future new value entered by 
a user or another automated process.. 

> 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