[
https://issues.apache.org/jira/browse/PDFBOX-2846?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14608417#comment-14608417
]
Tilman Hausherr commented on PDFBOX-2846:
-----------------------------------------
It works fine for me on Windows 7 with this code:
{code}
PDDocumentCatalog catalog = doc.getDocumentCatalog();
PDAcroForm acroForm = catalog.getAcroForm();
PDTextField fieldtest = (PDTextField) acroForm.getField("certNo");
fieldtest.setValue("test Something");
{code}
One difference to your code: a cast to PDTextField. But if the wikipedia
article on groovy is correct, you used dynamic typing, so it doesn't matter.
Make sure you have the latest version, there were some changes in fontbox
recently.
If it still doesn't work, maybe it happens only on Ubuntu :-( To verify this,
could you temporarly replace your font with one from a W7 system? The file is
in \Windows\Fonts\arialbd.ttf . Re the OSX problem, is there more in the stack
trace, e.g. a "caused by" part?
> setValue failing with font issues.
> ----------------------------------
>
> Key: PDFBOX-2846
> URL: https://issues.apache.org/jira/browse/PDFBOX-2846
> Project: PDFBox
> Issue Type: Bug
> Components: AcroForm
> Affects Versions: 2.0.0
> Environment: Ubuntu, Java 7 & OS X Java 7
> Reporter: Aaron Eischeid
> Attachments: Pulmotil_VFD_Swine_Template.pdf
>
>
> attempting to upgrade from 1.8.9 to 2.0.0 and Working with the snapshot
> builds I am bumping into what might be a bug regarding fonts.
> trying to setValue on a PDTextField object. If the value contains a space
> char I get an error.
> on Ubuntu my stacktrace is:
> {code}
> No glyph for U+0020 in font Arial-BoldMT. Stacktrace follows:
> java.lang.IllegalArgumentException: No glyph for U+0020 in font Arial-BoldMT
> at
> org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.encode(PDTrueTypeFont.java:297)
> at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:282)
> at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:311)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PlainText$Paragraph.getLines(PlainText.java:169)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PlainTextFormatter.format(PlainTextFormatter.java:177)
> at
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.insertGeneratedAppearance(AppearanceGeneratorHelper.java:246)
> at
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:152)
> at
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:106)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:262)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:220)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:217)
> ...
> {code}
> On OS X the stacktrace is :
> {code}
> Caused by: java.lang.NoClassDefFoundError: Could not initialize class
> org.apache.pdfbox.pdmodel.font.FontMapper$DefaultFontProvider
> at
> org.apache.pdfbox.pdmodel.font.FontMapper.getProvider(FontMapper.java:99)
> at
> org.apache.pdfbox.pdmodel.font.FontMapper.findFont(FontMapper.java:428)
> at
> org.apache.pdfbox.pdmodel.font.FontMapper.getTrueTypeFont(FontMapper.java:326)
> at
> org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.<init>(PDTrueTypeFont.java:155)
> at
> org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:75)
> at org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:96)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDAppearanceString.copyNeededResourcesTo(PDAppearanceString.java:173)
> at org.apache.pdfbox.
> pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:130)
> at
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:106)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:262)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:220)
> at
> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:217)
> ...
> {code}
> not sure what the difference is on the two systems that causes this, but this
> and the fact that setField worked pretty well in 1.8.9 with the same pdf file
> makes me think it isn't related entirely to something broken about the
> embedded font in the pdf.
> example (groovy) code for setting a value
> {code}
> ...
> PDDocumentCatalog catalog = document.getDocumentCatalog()
> PDAcroForm acroForm = catalog.getAcroForm()
> def fieldtest = acroForm.getField('certNo')
> fieldtest.setValue('test Something') // <- change to
> 'testSomething' and it will work
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]