diff options
-rw-r--r-- | src/org/apache/fop/svg/PDFGraphics2D.java | 24 | ||||
-rw-r--r-- | test/resources/fop/svg/paints.svg | 5 |
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> |