[
https://issues.apache.org/jira/browse/PDFBOX-1778?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13819854#comment-13819854
]
Tilman Hausherr commented on PDFBOX-1778:
-----------------------------------------
The problem is with the DecimalFormat in java, used in COSFloat.writePDF().
This code
{code}
float num = 0.9505f;
System.out.println (String.format("%f", num));
System.out.println (((Float) num).toString());
System.out.println (formatDecimal.format(num));
{code}
brings this output:
0,950500
0.9505
0.9505000114
There is a test for writePDF, but it just compares the decimal representation
instead of the value.
Oh, and converting 0.9505 to a double gets 0.9505000114440918.
> 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
> Priority: Critical
> Attachments: 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)