Support for line thicknes through escher graphics 2d interface.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@398044 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
6f7d2e3b76
commit
bea0a04d24
@ -91,6 +91,7 @@ public class OfficeDrawingWithGraphics
|
||||
int y1 = (int) ( Math.sin(i) * 138.0 ) + 138;
|
||||
int x2 = (int) ( -Math.cos(i) * 160.0 ) + 160;
|
||||
int y2 = (int) ( -Math.sin(i) * 138.0 ) + 138;
|
||||
g2d.setStroke(new BasicStroke(2));
|
||||
g2d.drawLine(x1,y1,x2,y2);
|
||||
}
|
||||
g2d.setFont(new Font("SansSerif",Font.BOLD | Font.ITALIC, 20));
|
||||
|
@ -16,9 +16,9 @@
|
||||
|
||||
package org.apache.poi.hssf.usermodel;
|
||||
|
||||
import org.apache.poi.hssf.util.HSSFColor;
|
||||
import org.apache.poi.util.POILogFactory;
|
||||
import org.apache.poi.util.POILogger;
|
||||
import org.apache.poi.hssf.util.HSSFColor;
|
||||
|
||||
import java.awt.*;
|
||||
import java.awt.image.ImageObserver;
|
||||
@ -203,10 +203,15 @@ public class EscherGraphics
|
||||
}
|
||||
|
||||
public void drawLine(int x1, int y1, int x2, int y2)
|
||||
{
|
||||
drawLine(x1,y1,x2,y2,0);
|
||||
}
|
||||
|
||||
public void drawLine(int x1, int y1, int x2, int y2, int width)
|
||||
{
|
||||
HSSFSimpleShape shape = escherGroup.createShape(new HSSFChildAnchor(x1, y1, x2, y2) );
|
||||
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
|
||||
shape.setLineWidth(0);
|
||||
shape.setLineWidth(width);
|
||||
shape.setLineStyleColor(foreground.getRed(), foreground.getGreen(), foreground.getBlue());
|
||||
}
|
||||
|
||||
@ -475,6 +480,9 @@ public class EscherGraphics
|
||||
this.background = background;
|
||||
}
|
||||
|
||||
|
||||
HSSFShapeGroup getEscherGraphics()
|
||||
{
|
||||
return escherGroup;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,10 @@ import java.awt.*;
|
||||
import java.awt.font.FontRenderContext;
|
||||
import java.awt.font.GlyphVector;
|
||||
import java.awt.font.TextLayout;
|
||||
import java.awt.geom.*;
|
||||
import java.awt.geom.AffineTransform;
|
||||
import java.awt.geom.Area;
|
||||
import java.awt.geom.GeneralPath;
|
||||
import java.awt.geom.Line2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.awt.image.BufferedImageOp;
|
||||
import java.awt.image.ImageObserver;
|
||||
@ -142,7 +145,13 @@ public class EscherGraphics2d extends Graphics2D
|
||||
if (shape instanceof Line2D)
|
||||
{
|
||||
Line2D shape2d = (Line2D) shape;
|
||||
drawLine((int)shape2d.getX1(), (int)shape2d.getY1(), (int)shape2d.getX2(), (int)shape2d.getY2());
|
||||
|
||||
int width = 0;
|
||||
if (stroke != null && stroke instanceof BasicStroke) {
|
||||
width = (int) ((BasicStroke)stroke).getLineWidth() * 12700;
|
||||
}
|
||||
|
||||
drawLine((int)shape2d.getX1(), (int)shape2d.getY1(), (int)shape2d.getX2(), (int)shape2d.getY2(), width);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -216,9 +225,18 @@ public class EscherGraphics2d extends Graphics2D
|
||||
drawImage(((Image) (img)), new AffineTransform(1.0F, 0.0F, 0.0F, 1.0F, x, y), null);
|
||||
}
|
||||
|
||||
public void drawLine(int x1, int y1, int x2, int y2, int width)
|
||||
{
|
||||
getEscherGraphics().drawLine(x1,y1,x2,y2, width);
|
||||
}
|
||||
|
||||
public void drawLine(int x1, int y1, int x2, int y2)
|
||||
{
|
||||
getEscherGraphics().drawLine(x1,y1,x2,y2);
|
||||
int width = 0;
|
||||
if (stroke != null && stroke instanceof BasicStroke) {
|
||||
width = (int) ((BasicStroke)stroke).getLineWidth() * 12700;
|
||||
}
|
||||
getEscherGraphics().drawLine(x1,y1,x2,y2, width);
|
||||
// draw(new GeneralPath(new java.awt.geom.Line2D.Float(x1, y1, x2, y2)));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user