You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2009/06/07 17:31:41 UTC

svn commit: r782401 - in /incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer: SetLineWidth.java StrokePath.java

Author: lehmi
Date: Sun Jun  7 15:31:40 2009
New Revision: 782401

URL: http://svn.apache.org/viewvc?rev=782401&view=rev
Log:
PDFBOX-481: fixed the scaling of lines

Modified:
    incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java
    incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java

Modified: incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java
URL: http://svn.apache.org/viewvc/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java?rev=782401&r1=782400&r2=782401&view=diff
==============================================================================
--- incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java (original)
+++ incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/SetLineWidth.java Sun Jun  7 15:31:40 2009
@@ -19,7 +19,6 @@
 import java.util.List;
 import org.apache.pdfbox.pdfviewer.PageDrawer;
 import org.apache.pdfbox.util.PDFOperator;
-import org.apache.pdfbox.util.Matrix;
 
 import java.awt.BasicStroke;
 import java.awt.Graphics2D;
@@ -44,10 +43,9 @@
     {
         super.process( operator, arguments );
         float lineWidth = (float)context.getGraphicsState().getLineWidth();
-        Matrix ctm = context.getGraphicsState().getCurrentTransformationMatrix();
-        if ( ctm != null && ctm.getXScale() > 0 ) 
+        if (lineWidth == 0) 
         {
-            lineWidth = lineWidth * ctm.getXScale();
+        	lineWidth = 1;
         }
         Graphics2D graphics = ((PageDrawer)context).getGraphics();
         BasicStroke stroke = (BasicStroke)graphics.getStroke();

Modified: incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java
URL: http://svn.apache.org/viewvc/incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java?rev=782401&r1=782400&r2=782401&view=diff
==============================================================================
--- incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java (original)
+++ incubator/pdfbox/trunk/src/main/java/org/apache/pdfbox/util/operator/pagedrawer/StrokePath.java Sun Jun  7 15:31:40 2009
@@ -18,8 +18,12 @@
 
 import java.util.List;
 import org.apache.pdfbox.pdfviewer.PageDrawer;
+import org.apache.pdfbox.util.Matrix;
 import org.apache.pdfbox.util.PDFOperator;
 import org.apache.pdfbox.util.operator.*;
+
+import java.awt.BasicStroke;
+import java.awt.Graphics2D;
 import java.io.IOException;
 
 /**
@@ -43,6 +47,21 @@
         ///dwilson 3/19/07 refactor
 	try{
 		PageDrawer drawer = (PageDrawer)context;
+
+        float lineWidth = (float)context.getGraphicsState().getLineWidth();
+        Matrix ctm = context.getGraphicsState().getCurrentTransformationMatrix();
+        if ( ctm != null && ctm.getXScale() > 0) 
+        {
+            lineWidth = lineWidth * ctm.getXScale();
+        }
+        Graphics2D graphics = ((PageDrawer)context).getGraphics();
+        BasicStroke stroke = (BasicStroke)graphics.getStroke();
+        if (stroke == null)
+            graphics.setStroke( new BasicStroke( lineWidth ) );
+        else
+            graphics.setStroke( new BasicStroke(lineWidth, stroke.getEndCap(), stroke.getLineJoin(), stroke.getMiterLimit(), stroke.getDashArray(), stroke.getDashPhase()) );
+
+		
 		drawer.StrokePath();
 	}catch (Exception e){