aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/org/apache/fop/svg/PDFGraphics2D.java24
-rw-r--r--test/resources/fop/svg/paints.svg5
2 files changed, 17 insertions, 12 deletions
diff --git a/src/org/apache/fop/svg/PDFGraphics2D.java b/src/org/apache/fop/svg/PDFGraphics2D.java
index 98736e5ab..b9f20737f 100644
--- a/src/org/apache/fop/svg/PDFGraphics2D.java
+++ b/src/org/apache/fop/svg/PDFGraphics2D.java
@@ -768,7 +768,7 @@ public class PDFGraphics2D extends AbstractGraphics2D {
// this makes the pattern the right way up, since
// it is outside the original transform around the
// whole svg document
- pattStream.write("1 0 0 -1 0 " + rect.getHeight() + " cm\n");
+ pattStream.write("1 0 0 -1 0 " + (rect.getHeight() + rect.getY()) + " cm\n");
pattStream.write(pattGraphic.getString());
pattStream.write("Q");
@@ -776,16 +776,20 @@ public class PDFGraphics2D extends AbstractGraphics2D {
ArrayList bbox = new ArrayList();
bbox.add(new Double(0));
bbox.add(new Double(0));
- bbox.add(new Double(rect.getWidth()));
- bbox.add(new Double(rect.getHeight()));
+ bbox.add(new Double(rect.getWidth() + rect.getX()));
+ bbox.add(new Double(rect.getHeight() + rect.getY()));
+
ArrayList translate = new ArrayList();
- // TODO combine with pattern transform
- translate.add(new Double(1));
- translate.add(new Double(0));
- translate.add(new Double(0));
- translate.add(new Double(1));
- translate.add(new Double(0/*rect.getX()*/));
- translate.add(new Double(0/*rect.getY()*/));
+ AffineTransform pattt = pp.getPatternTransform();
+ pattt.translate(rect.getWidth() + rect.getX(), rect.getHeight() + rect.getY());
+ double[] flatmatrix = new double[6];
+ pattt.getMatrix(flatmatrix);
+ translate.add(new Double(flatmatrix[0]));
+ translate.add(new Double(flatmatrix[1]));
+ translate.add(new Double(flatmatrix[2]));
+ translate.add(new Double(flatmatrix[3]));
+ translate.add(new Double(flatmatrix[4]));
+ translate.add(new Double(flatmatrix[5]));
FontSetup.addToResources(pdfDoc, res, fi);
diff --git a/test/resources/fop/svg/paints.svg b/test/resources/fop/svg/paints.svg
index 12a4bf748..709f31881 100644
--- a/test/resources/fop/svg/paints.svg
+++ b/test/resources/fop/svg/paints.svg
@@ -16,14 +16,16 @@
</linearGradient>
<linearGradient id="grad2" x1="0" y1="0" x2="0" y2="1">
<stop offset="0" style="stop-color:crimson" />
+ <stop offset="0.4" style="stop-color:purple" />
<stop offset="1" style="stop-color:gold" />
</linearGradient>
<linearGradient id="grad3" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" style="stop-color:crimson" />
+ <stop offset="0.7" style="stop-color:blue" />
<stop offset="1" style="stop-color:gold" />
</linearGradient>
<radialGradient id="rad"
- fx="20%" fy="0%" rx="10%" ry="30%" r="40%">
+ fx="20%" fy="30%" rx="10%" ry="30%" r="40%">
<stop offset="0" stop-color="gold" />
<stop offset="1" stop-color="green" stop-opacity="0.4"/>
</radialGradient>
@@ -33,7 +35,6 @@
<rect x="15" y="195" width="100" height="75" style="fill:url(#grad3)" />
<rect x="15" y="275" width="100" height="75" style="fill:url(#rad)" />
-
<text x="120" y="35" style="font-size:12">Pattern</text>
<defs>