public class drawpicture extends JRAbstractSvgRenderer {
String drawstring = "something";
public void render(Graphics2D g2d, Rectangle2D rect) throws JRException {
System.out.println("render");
AffineTransform savedTrans = g2d.getTransform();
Font savedFont = g2d.getFont();
// Paint a nice background...
g2d.setPaint(new GradientPaint(0, 0, Color.ORANGE,
0, (int) rect.getHeight(), Color.PINK));
g2d.fillRect(0, 0, (int) rect.getWidth(), (int) rect.getHeight());
Font myfont = new Font("Arial Black", Font.PLAIN, 50);
g2d.setFont(myfont);
FontRenderContext frc = g2d.getFontRenderContext();
String text = drawstring;
TextLayout textLayout = new TextLayout(text, myfont, frc);
Shape outline = textLayout.getOutline(null);
Rectangle r = outline.getBounds();
// Translate the graphic to center the text
g2d.translate(
(rect.getWidth() / 2) - (r.width / 2),
rect.getHeight() / 2 + (r.height / 2));
g2d.setColor(Color.BLACK);
g2d.draw(outline);
// Restore the Graphics2D affine transform
g2d.setFont(savedFont);
g2d.setTransform(savedTrans);
}
}
这项工作正常,因此我可以通过Java界面绘制图像并在Ireports Image字段中显示它。 我还可以在ireport Textfield中显示BLOB字段。
但我无法加载Blob字段,在其中绘制内容并在图像字段中显示。
有人有想法吗?
谢谢你,祝你好运 基督教
P.S。:我正在使用Ireport 4.1.3和netBeans 7.0.1
答案 0 :(得分:0)
这里是下面提到的评论作为答案,视需要。
解决
现在我在Ireport中使用了2个ImageBoxes
1 - >图片来自BLOB Field
2 - > “标记掩码”(通过Java生成)
这是通过Alpha通道生成透明蒙版的技巧
标记被排除在透明度之外! : - )