jeremias 2003/02/16 04:41:58
Modified: src/org/apache/fop/svg Tag: fop-0_20_2-maintain
PDFGraphics2D.java
Log:
Fixed some sources of "wrong operand type" error in Acrobat Reader.
They were caused by rounding bugs, mostly experienced with SVG files coming from
OpenOffice.
The PDF contained matrices like "0 0 0 0 0 0 cm" when the values really shouldn't be
zero.
Revision Changes Path
No revision
No revision
1.20.2.10 +20 -22 xml-fop/src/org/apache/fop/svg/PDFGraphics2D.java
Index: PDFGraphics2D.java
===================================================================
RCS file: /home/cvs/xml-fop/src/org/apache/fop/svg/PDFGraphics2D.java,v
retrieving revision 1.20.2.9
retrieving revision 1.20.2.10
diff -u -r1.20.2.9 -r1.20.2.10
--- PDFGraphics2D.java 8 Nov 2002 10:25:29 -0000 1.20.2.9
+++ PDFGraphics2D.java 16 Feb 2003 12:41:57 -0000 1.20.2.10
@@ -548,12 +548,12 @@
AffineTransform trans = getTransform();
double[] tranvals = new double[6];
trans.getMatrix(tranvals);
- currentStream.write(PDFNumber.doubleOut(tranvals[0]) + " "
- + PDFNumber.doubleOut(tranvals[1]) + " "
- + PDFNumber.doubleOut(tranvals[2]) + " "
- + PDFNumber.doubleOut(tranvals[3]) + " "
- + PDFNumber.doubleOut(tranvals[4]) + " "
- + PDFNumber.doubleOut(tranvals[5]) + " cm\n");
+ currentStream.write(PDFNumber.doubleOut(tranvals[0], 8) + " "
+ + PDFNumber.doubleOut(tranvals[1], 8) + " "
+ + PDFNumber.doubleOut(tranvals[2], 8) + " "
+ + PDFNumber.doubleOut(tranvals[3], 8) + " "
+ + PDFNumber.doubleOut(tranvals[4], 8) + " "
+ + PDFNumber.doubleOut(tranvals[5], 8) + " cm\n");
PathIterator iter = s.getPathIterator(new AffineTransform());
while (!iter.isDone()) {
@@ -938,12 +938,12 @@
double[] vals = new double[6];
trans.getMatrix(vals);
- currentStream.write(PDFNumber.doubleOut(vals[0]) + " "
- + PDFNumber.doubleOut(vals[1]) + " "
- + PDFNumber.doubleOut(vals[2]) + " "
- + PDFNumber.doubleOut(vals[3]) + " "
- + PDFNumber.doubleOut(vals[4]) + " "
- + PDFNumber.doubleOut(vals[5]) + " cm\n");
+ currentStream.write(PDFNumber.doubleOut(vals[0], 8) + " "
+ + PDFNumber.doubleOut(vals[1], 8) + " "
+ + PDFNumber.doubleOut(vals[2], 8) + " "
+ + PDFNumber.doubleOut(vals[3], 8) + " "
+ + PDFNumber.doubleOut(vals[4], 8) + " "
+ + PDFNumber.doubleOut(vals[5], 8) + " cm\n");
currentStream.write("1 0 0 -1 0 0 Tm [" + startText);
int l = s.length();
@@ -1084,12 +1084,12 @@
}
- currentStream.write(PDFNumber.doubleOut(vals[0]) + " "
- + PDFNumber.doubleOut(vals[1]) + " "
- + PDFNumber.doubleOut(vals[2]) + " "
- + PDFNumber.doubleOut(vals[3]) + " "
- + PDFNumber.doubleOut(vals[4]) + " "
- + PDFNumber.doubleOut(vals[5]) + " Tm (" + ch
+ currentStream.write(PDFNumber.doubleOut(vals[0], 8) + " "
+ + PDFNumber.doubleOut(vals[1], 8) + " "
+ + PDFNumber.doubleOut(vals[2], 8) + " "
+ + PDFNumber.doubleOut(vals[3], 8) + " "
+ + PDFNumber.doubleOut(vals[4], 8) + " "
+ + PDFNumber.doubleOut(vals[5], 8) + " Tm (" + ch
+ ") Tj\n");
}
@@ -1285,11 +1285,9 @@
}
// needed for compiling under jdk1.4
- @jdk14codestart@
public java.awt.image.VolatileImage createCompatibleVolatileImage(int
width, int height) {
return null;
}
- @jdk14codeend@
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]