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 y1 = (int) ( Math.sin(i) * 138.0 ) + 138;
|
||||||
int x2 = (int) ( -Math.cos(i) * 160.0 ) + 160;
|
int x2 = (int) ( -Math.cos(i) * 160.0 ) + 160;
|
||||||
int y2 = (int) ( -Math.sin(i) * 138.0 ) + 138;
|
int y2 = (int) ( -Math.sin(i) * 138.0 ) + 138;
|
||||||
|
g2d.setStroke(new BasicStroke(2));
|
||||||
g2d.drawLine(x1,y1,x2,y2);
|
g2d.drawLine(x1,y1,x2,y2);
|
||||||
}
|
}
|
||||||
g2d.setFont(new Font("SansSerif",Font.BOLD | Font.ITALIC, 20));
|
g2d.setFont(new Font("SansSerif",Font.BOLD | Font.ITALIC, 20));
|
||||||
|
@ -16,9 +16,9 @@
|
|||||||
|
|
||||||
package org.apache.poi.hssf.usermodel;
|
package org.apache.poi.hssf.usermodel;
|
||||||
|
|
||||||
|
import org.apache.poi.hssf.util.HSSFColor;
|
||||||
import org.apache.poi.util.POILogFactory;
|
import org.apache.poi.util.POILogFactory;
|
||||||
import org.apache.poi.util.POILogger;
|
import org.apache.poi.util.POILogger;
|
||||||
import org.apache.poi.hssf.util.HSSFColor;
|
|
||||||
|
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
import java.awt.image.ImageObserver;
|
import java.awt.image.ImageObserver;
|
||||||
@ -203,10 +203,15 @@ public class EscherGraphics
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void drawLine(int x1, int y1, int x2, int y2)
|
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) );
|
HSSFSimpleShape shape = escherGroup.createShape(new HSSFChildAnchor(x1, y1, x2, y2) );
|
||||||
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
|
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_LINE);
|
||||||
shape.setLineWidth(0);
|
shape.setLineWidth(width);
|
||||||
shape.setLineStyleColor(foreground.getRed(), foreground.getGreen(), foreground.getBlue());
|
shape.setLineStyleColor(foreground.getRed(), foreground.getGreen(), foreground.getBlue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -475,6 +480,9 @@ public class EscherGraphics
|
|||||||
this.background = background;
|
this.background = background;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HSSFShapeGroup getEscherGraphics()
|
||||||
|
{
|
||||||
|
return escherGroup;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,10 @@ import java.awt.*;
|
|||||||
import java.awt.font.FontRenderContext;
|
import java.awt.font.FontRenderContext;
|
||||||
import java.awt.font.GlyphVector;
|
import java.awt.font.GlyphVector;
|
||||||
import java.awt.font.TextLayout;
|
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.BufferedImage;
|
||||||
import java.awt.image.BufferedImageOp;
|
import java.awt.image.BufferedImageOp;
|
||||||
import java.awt.image.ImageObserver;
|
import java.awt.image.ImageObserver;
|
||||||
@ -142,7 +145,13 @@ public class EscherGraphics2d extends Graphics2D
|
|||||||
if (shape instanceof Line2D)
|
if (shape instanceof Line2D)
|
||||||
{
|
{
|
||||||
Line2D shape2d = (Line2D) shape;
|
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
|
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);
|
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)
|
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)));
|
// draw(new GeneralPath(new java.awt.geom.Line2D.Float(x1, y1, x2, y2)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user