Browse Source

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
tags/fop-1_1rc1^2
Glenn Adams 12 years ago
parent
commit
f7c9ea74d2

+ 2
- 0
src/java/org/apache/fop/svg/PDFGraphics2D.java View File

@@ -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) {

+ 3
- 0
status.xml View File

@@ -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>

+ 48
- 0
test/java/org/apache/fop/svg/PDFGraphics2DTestCase.java View File

@@ -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"));
}

}

Loading…
Cancel
Save