You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Simon Gaeremynck <ga...@gmail.com> on 2016/09/15 13:07:23 UTC

Unsupported float value. Error expected floating point number actual='0.-262'

Hello,

I think I've encountered a similar issue to:
 - PDFBOX-2990 (0.00000-33917698) and
 - PDFBOX-3369 (0.00-35095424)
except my value doesn't seem to have any zeros after the decimal
separator and before the dash.

I've linked a document [1] that we encountered in the wild and was not
created by us. It seems to have been authored in Adobe InDesign (CS5,
7.0.4) and produce by Adobe PDF Library (9.9).

When patching COSFloat.java [2] to not require any zeros after the
decimal point I can successfully parse and render the document but I'm
not sure whether that's the right way to go about this as I'm not
really sure what the specification for these values is. If this is a
bug I'm happy to open up a ticket and attach a proper diff with a
corresponding tests, but I thought I'd ask on the list before doing
that.

FWIW, I haven't set up the tooling to run the unit tests on my machine
yet so I haven't been able to run all the tests in case this is some
weird edge-case.

Kind regards,
Simon

[1] https://drive.google.com/file/d/0By1ziijP3F-fT1B0TGFCM2pKMDQ/view?usp=sharing
[2] COSFloat.java diff
Index: pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
===================================================================
--- pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (revision 1760915)
+++ pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (working copy)
@@ -61,7 +61,7 @@
         }
         catch( NumberFormatException e )
         {
-            if (aFloat.matches("^0\\.0+\\-\\d+"))
+            if (aFloat.matches("^0\\.0*\\-\\d+"))
             {
                 // PDFBOX-2990 has 0.00000-33917698
                 // PDFBOX-3369 has 0.00-35095424


[3] Stack trace:
[error] at org.apache.pdfbox.cos.COSFloat.<init>(COSFloat.java:81)
[error] at org.apache.pdfbox.cos.COSNumber.get(COSNumber.java:115)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:939)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSArray(BaseParser.java:651)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:866)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryValue(BaseParser.java:150)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryNameValuePair(BaseParser.java:274)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionary(BaseParser.java:207)
[error] at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:854)
[error] at org.apache.pdfbox.pdfparser.COSParser.parseFileObject(COSParser.java:752)
[error] at org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:721)
[error] at org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:652)
[error] at org.apache.pdfbox.pdfparser.COSParser.parseDictObjects(COSParser.java:612)
[error] at org.apache.pdfbox.pdfparser.PDFParser.initialParse(PDFParser.java:215)
[error] at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:249)
[error] at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:840)
[error] at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:780)
[error] at io.fronteer.ally.feedback.pdf.PdfFeedback$$anonfun$3.apply(PdfFeedback.scala:165)
[error] at io.fronteer.ally.feedback.pdf.PdfFeedback$$anonfun$3.apply(PdfFeedback.scala:165)
[error] at scala.util.Try$.apply(Try.scala:192)
[error] at io.fronteer.ally.feedback.pdf.PdfFeedback$.parseDocument(PdfFeedback.scala:165)
[error] at ParsableMain$.parseFile(ParsableMain.scala:40)
[error] at ParsableMain$.main(ParsableMain.scala:16)
[error] at ParsableMain.main(ParsableMain.scala)
[error] Caused by: java.lang.NumberFormatException
[error] at java.math.BigDecimal.<init>(BigDecimal.java:494)
[error] at java.math.BigDecimal.<init>(BigDecimal.java:383)
[error] at java.math.BigDecimal.<init>(BigDecimal.java:806)
[error] at org.apache.pdfbox.cos.COSFloat.<init>(COSFloat.java:59)

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Re: Unsupported float value. Error expected floating point number actual='0.-262'

Posted by Tilman Hausherr <TH...@t-online.de>.
Am 15.09.2016 um 22:07 schrieb Tilman Hausherr:
> Hi,
>
> Thanks, I've opened https://issues.apache.org/jira/browse/PDFBOX-3500. 
> Your patch works fine with the file but I'll run some more tests, as 
> you rightly suggest :-)
>
> Tilman 


done

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Re: Unsupported float value. Error expected floating point number actual='0.-262'

Posted by Tilman Hausherr <TH...@t-online.de>.
Hi,

Thanks, I've opened https://issues.apache.org/jira/browse/PDFBOX-3500. 
Your patch works fine with the file but I'll run some more tests, as you 
rightly suggest :-)

Tilman

Am 15.09.2016 um 15:07 schrieb Simon Gaeremynck:
> Hello,
>
> I think I've encountered a similar issue to:
>   - PDFBOX-2990 (0.00000-33917698) and
>   - PDFBOX-3369 (0.00-35095424)
> except my value doesn't seem to have any zeros after the decimal
> separator and before the dash.
>
> I've linked a document [1] that we encountered in the wild and was not
> created by us. It seems to have been authored in Adobe InDesign (CS5,
> 7.0.4) and produce by Adobe PDF Library (9.9).
>
> When patching COSFloat.java [2] to not require any zeros after the
> decimal point I can successfully parse and render the document but I'm
> not sure whether that's the right way to go about this as I'm not
> really sure what the specification for these values is. If this is a
> bug I'm happy to open up a ticket and attach a proper diff with a
> corresponding tests, but I thought I'd ask on the list before doing
> that.
>
> FWIW, I haven't set up the tooling to run the unit tests on my machine
> yet so I haven't been able to run all the tests in case this is some
> weird edge-case.
>
> Kind regards,
> Simon
>
> [1] https://drive.google.com/file/d/0By1ziijP3F-fT1B0TGFCM2pKMDQ/view?usp=sharing
> [2] COSFloat.java diff
> Index: pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java
> ===================================================================
> --- pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (revision 1760915)
> +++ pdfbox/src/main/java/org/apache/pdfbox/cos/COSFloat.java (working copy)
> @@ -61,7 +61,7 @@
>           }
>           catch( NumberFormatException e )
>           {
> -            if (aFloat.matches("^0\\.0+\\-\\d+"))
> +            if (aFloat.matches("^0\\.0*\\-\\d+"))
>               {
>                   // PDFBOX-2990 has 0.00000-33917698
>                   // PDFBOX-3369 has 0.00-35095424
>
>
> [3] Stack trace:
> [error] at org.apache.pdfbox.cos.COSFloat.<init>(COSFloat.java:81)
> [error] at org.apache.pdfbox.cos.COSNumber.get(COSNumber.java:115)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:939)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSArray(BaseParser.java:651)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:866)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryValue(BaseParser.java:150)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionaryNameValuePair(BaseParser.java:274)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseCOSDictionary(BaseParser.java:207)
> [error] at org.apache.pdfbox.pdfparser.BaseParser.parseDirObject(BaseParser.java:854)
> [error] at org.apache.pdfbox.pdfparser.COSParser.parseFileObject(COSParser.java:752)
> [error] at org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:721)
> [error] at org.apache.pdfbox.pdfparser.COSParser.parseObjectDynamically(COSParser.java:652)
> [error] at org.apache.pdfbox.pdfparser.COSParser.parseDictObjects(COSParser.java:612)
> [error] at org.apache.pdfbox.pdfparser.PDFParser.initialParse(PDFParser.java:215)
> [error] at org.apache.pdfbox.pdfparser.PDFParser.parse(PDFParser.java:249)
> [error] at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:840)
> [error] at org.apache.pdfbox.pdmodel.PDDocument.load(PDDocument.java:780)
> [error] at io.fronteer.ally.feedback.pdf.PdfFeedback$$anonfun$3.apply(PdfFeedback.scala:165)
> [error] at io.fronteer.ally.feedback.pdf.PdfFeedback$$anonfun$3.apply(PdfFeedback.scala:165)
> [error] at scala.util.Try$.apply(Try.scala:192)
> [error] at io.fronteer.ally.feedback.pdf.PdfFeedback$.parseDocument(PdfFeedback.scala:165)
> [error] at ParsableMain$.parseFile(ParsableMain.scala:40)
> [error] at ParsableMain$.main(ParsableMain.scala:16)
> [error] at ParsableMain.main(ParsableMain.scala)
> [error] Caused by: java.lang.NumberFormatException
> [error] at java.math.BigDecimal.<init>(BigDecimal.java:494)
> [error] at java.math.BigDecimal.<init>(BigDecimal.java:383)
> [error] at java.math.BigDecimal.<init>(BigDecimal.java:806)
> [error] at org.apache.pdfbox.cos.COSFloat.<init>(COSFloat.java:59)
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
> For additional commands, e-mail: users-help@pdfbox.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org