[ https://issues.apache.org/jira/browse/PDFBOX-3597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15708010#comment-15708010 ]
Matt Wise commented on PDFBOX-3597: ----------------------------------- Thanks Maruan, yes the form will be flattened and is intended for printing after filling out the fields from my backend app so I want to reduce the file size as much as possible. Embedding the entirety of ArialUnicodeMs adds about 15mb to the resulting PDF which is excessive. > 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: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org