[
https://issues.apache.org/jira/browse/PDFBOX-1778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13828901#comment-13828901
]
Michael Klink edited comment on PDFBOX-1778 at 11/21/13 1:21 PM:
-----------------------------------------------------------------
The constructor with a float argument will cause failures in case of extreme
values:
{code}
public COSFloat( float aFloat )
{
valueAsString = String.valueOf(aFloat);
value = new BigDecimal(valueAsString);
}
{code}
E.g. a {{new COSFloat(0.000000000000000000000000000000001f)}} will be
serialized as {{1.0E-33}} which is not desired.
I would propose
{code}
public COSFloat( float aFloat )
{
this(new BigDecimal(String.valueOf(aFloat)));
}
{code}
instead.
Or do we even have to use some {{DecimalFormat}} in case of the {{BigInteger}}
argument constructor?
was (Author: mkl):
The constructor with a float argument will cause failures in case of extreme
values:
{code}
public COSFloat( float aFloat )
{
valueAsString = String.valueOf(aFloat);
value = new BigDecimal(valueAsString);
}
{code}
E.g. a {{new COSFloat(0.000000000000000000000000000000001f)}} will be
serialized as {{1.0E-33}} which is not desired.
I would propose
{code}
public COSFloat( float aFloat )
{
this(new BigDecimal(String.valueOf(aFloat)));
}
{code}
instead.
> Rounding issue in generated PDF file
> ------------------------------------
>
> Key: PDFBOX-1778
> URL: https://issues.apache.org/jira/browse/PDFBOX-1778
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel, Signing
> Affects Versions: 1.8.3
> Reporter: vakhtang koroghlishvili
> Assignee: Andreas Lehmkühler
> Priority: Critical
> Fix For: 1.8.3, 2.0.0
>
> Attachments: extreme-values-red.pdf, extreme-values-red.png,
> extreme-values.pdf, extreme-values.png, original.pdf, saved.pdf
>
>
> We have PDF file which was signed by some other application.
> When we try to sign it with PDFbox, previous revision is damaged.
> We did some investigations and found such problem:
> (question on stackoverflow is here:
> http://stackoverflow.com/questions/19903884/pdf-document-is-modified-by-another-revision/19905271?noredirect=1#19905271
> )
> Some PDF tags are changed in new revisions.
> For example values of following tags:
> /WhitePoint
> /Gamma
> /Matrix
> are changed from values like this: 0.9505
> to values like this: 0.9505000114
> We think this is problem of converting float/double inside COSFloat.
> Following code just opens and saves PDF file and this operation changes
> values of mentioned text:
> public void saveTo(String sourceFile, String destFile) throws Exception{
> PDDocument doc = PDDocument.load(new FileInputStream(sourceFile));
> doc.save(new FileOutputStream(destFile));
> }
--
This message was sent by Atlassian JIRA
(v6.1#6144)