aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlenn Adams <gadams@apache.org>2012-06-24 19:01:04 +0000
committerGlenn Adams <gadams@apache.org>2012-06-24 19:01:04 +0000
commitf7c9ea74d2157769b664aee9fcd3f2d00bb32e05 (patch)
treefbe43a036a5217c6e5c9c7af7b693038dd48bb92
parent6ebb1734ecae43bb804a59db72eb1a416a94afba (diff)
downloadxmlgraphics-fop-f7c9ea74d2157769b664aee9fcd3f2d00bb32e05.tar.gz
xmlgraphics-fop-f7c9ea74d2157769b664aee9fcd3f2d00bb32e05.zip
Bugzilla #53431: Fix incorrect SVG line dash pattern with PDF output format. Submitted by Luis Bernardo.
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1353311 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--src/java/org/apache/fop/svg/PDFGraphics2D.java2
-rw-r--r--status.xml3
-rw-r--r--test/java/org/apache/fop/svg/PDFGraphics2DTestCase.java48
3 files changed, 53 insertions, 0 deletions
diff --git a/src/java/org/apache/fop/svg/PDFGraphics2D.java b/src/java/org/apache/fop/svg/PDFGraphics2D.java
index 67fc5d860..87c12d869 100644
--- a/src/java/org/apache/fop/svg/PDFGraphics2D.java
+++ b/src/java/org/apache/fop/svg/PDFGraphics2D.java
@@ -1201,6 +1201,8 @@ public class PDFGraphics2D extends AbstractGraphics2D implements NativeImageHand
currentStream.write("] ");
float offset = bs.getDashPhase();
currentStream.write(PDFNumber.doubleOut(offset) + " d\n");
+ } else {
+ currentStream.write("[] 0 d\n");
}
int ec = bs.getEndCap();
switch (ec) {
diff --git a/status.xml b/status.xml
index fb5330ca3..58c6bb81c 100644
--- a/status.xml
+++ b/status.xml
@@ -63,6 +63,9 @@
documents. Example: the fix of marks layering will be such a case when it's done.
-->
<release version="FOP Trunk" date="TBD">
+ <action context="Images" dev="GA" type="fix" fixes-bug="53431" due-to="Luis Bernardo">
+ Fix incorrect SVG line dash pattern with PDF output format.
+ </action>
<action context="Images" dev="GA" type="update" fixes-bug="40676" due-to="Luis Bernardo">
Fix interoperability issue with Adobe reader regarding use of multiple filters.
</action>
diff --git a/test/java/org/apache/fop/svg/PDFGraphics2DTestCase.java b/test/java/org/apache/fop/svg/PDFGraphics2DTestCase.java
new file mode 100644
index 000000000..3f610c56f
--- /dev/null
+++ b/test/java/org/apache/fop/svg/PDFGraphics2DTestCase.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/* $Id$ */
+
+package org.apache.fop.svg;
+
+import java.awt.BasicStroke;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertTrue;
+
+public class PDFGraphics2DTestCase {
+
+ @Test
+ public void testApplyStrokeNullDash() {
+ PDFGraphics2D g2d = new PDFGraphics2D(false);
+ BasicStroke stroke = new BasicStroke();
+ g2d.applyStroke(stroke);
+ assertTrue(g2d.getString().contains("[] 0 d\n"));
+ }
+
+ @Test
+ public void testApplyStrokeNonNullDash() {
+ PDFGraphics2D g2d = new PDFGraphics2D(false);
+ float[] dashArray = {3.0f, 5.0f};
+ BasicStroke stroke = new BasicStroke(1.0f, BasicStroke.CAP_SQUARE, BasicStroke.JOIN_MITER, 10.0f,
+ dashArray, 0.0f);
+ g2d.applyStroke(stroke);
+ assertTrue(g2d.getString().contains("[3 5] 0 d\n"));
+ }
+
+}