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

Michael Klink commented on PDFBOX-5297:
---------------------------------------

Beware, you shouldn't blindly replace away such "/Helvetica" or 
"/ZapfDingbatsITC" *DA* starts like that:

* If it starts with "/Helvetica" it might actually start with e.g. 
"/HelveticaNeue" and your replacement would make that a "/HelvNeue" which 
wouldn't really fix anything.
* There might actually be a "/Helvetica" font in the *DR* default resources. In 
that case replacing "/Helvetica" with "/Helv" might not be desired.
* The *DA* default appearance does not necessarily start with the font setting 
instruction. It usually does but you here try to fix unusual cases...

Thus, for a proper repair of the *DA* value you should correctly parse it into 
instructions, search the font setting instruction, and check its first 
argument. Then fix the font name if and only if it's not a name or it is a name 
that neither is the name of a font in the *DR* default resources nor one of the 
*Helv*, *HeBo*, ... set of names.

> class org.apache.pdfbox.cos.COSName cannot be cast to class 
> org.apache.pdfbox.cos.COSString
> -------------------------------------------------------------------------------------------
>
>                 Key: PDFBOX-5297
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5297
>             Project: PDFBox
>          Issue Type: Bug
>          Components: AcroForm
>    Affects Versions: 2.0.24
>            Reporter: Chris Newhouse
>            Assignee: Tilman Hausherr
>            Priority: Major
>             Fix For: 2.0.25, 3.0.0 PDFBox
>
>
> A customer provided us with a PDF that contains an AcroForm and has some of 
> the data filled in. There are various ways to trigger the error, but here's a 
> stacktrace:
> {code:java}
> class org.apache.pdfbox.cos.COSName cannot be cast to class 
> org.apache.pdfbox.cos.COSString (org.apache.pdfbox.cos.COSName and 
> org.apache.pdfbox.cos.COSString are in unnamed module of loader 'app')
>  at 
> org.apache.pdfbox.pdmodel.interactive.form.PDVariableText.getDefaultAppearanceString(PDVariableText.java:91)
>  at 
> org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.<init>(AppearanceGeneratorHelper.java:114)
>  at 
> org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:263)
>  at 
> org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm.refreshAppearances(PDAcroForm.java:331)
>  at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
> Method)
>  at 
> java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  at 
> java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.base/java.lang.reflect.Method.invoke(Method.java:566){code}
> The PDF contains sensitive user information, so I cannot post it here 
> publicly, but I'd be willing to submit it to a private upload area. When I 
> use an editor to remove/change the sensitive data, the problem goes away or 
> sprouts up as a different error (related to fonts).
>  
> Here is a little bit of metadata I can provide right now:
> {code:java}
> {
>  "Author": "SE:W:CAR:MP",
>  "CreationDate": "D:20211012165530Z00'00'",
>  "Creator": "Adobe LiveCycle Designer ES 9.0",
>  "Keywords": "Fillable",
>  "ModDate": "D:20211012165530Z00'00'",
>  "Producer": "macOS Version 10.15.7 (Build 19H1417) Quartz PDFContext",
>  "Subject": "Request for Taxpayer Identification Number and Certification",
>  "Title": "Form W-9 (Rev. October 2018)"
> }{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to