[
https://issues.apache.org/jira/browse/PDFBOX-2846?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Aaron Eischeid updated PDFBOX-2846:
-----------------------------------
Description:
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 code for setting a value
{code}
PDDocumentCatalog catalog = document.getDocumentCatalog()
PDAcroForm acroForm = catalog.getAcroForm()
def fieldtest = acroForm.getField('certNo')
fieldtest.setValue('test Something')
{code}
was:
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 differnence 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.
> 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 code for setting a value
> {code}
> PDDocumentCatalog catalog = document.getDocumentCatalog()
> PDAcroForm acroForm = catalog.getAcroForm()
> def fieldtest = acroForm.getField('certNo')
> fieldtest.setValue('test Something')
> {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]