JasperReports:使用背景乐队创建水印

时间:2011-12-02 23:16:17

标签: java jasper-reports

我正在尝试使用纯Java(我自己以编程方式构建JasperDesign)来确定如何为我的JasperReport设置水印。

假设我的水印图像文件是这样的:

String imageFileUri = "/some/url/MyWatermark.jpg";

现在我想在我的JasperDesign添加一个背景乐队,它会将MyWatermark.jpg图片叠加在我报告的每一页上。我有几行“开始代码”,但之后我画了一个空白。我搜索了高低代码示例,但找不到任何代码。

JRDesignBand backgroundBand = new JRDesignBand();
backgroundBand.setHeight(842);
backgroundBand.setWidth(595);

// ...???

提前感谢您提前澄清。

1 个答案:

答案 0 :(得分:4)

要解决此问题,我们可以使用Background Band中的JRDesignImage元素。

样本:

JasperDesign jasperDesign = new JasperDesign();

//Some code to filling bands .....

JRDesignBand band = new JRDesignBand();
band.setHeight(200);

//The expression must contain the double quotes!!! 
//This is a analogue of <imageExpression><![CDATA["watermark.png"]]></imageExpression>
String imgPath = "\"watermark.png\"";

JRDesignExpression expression = new JRDesignExpression();
expression.setText(imgPath);

JRDesignImage image = new JRDesignImage(jasperDesign);
image.setX(45);
image.setY(55);
image.setWidth(165);
image.setHeight(40);
//We can use another scaling mode
image.setScaleImage(ScaleImageEnum.FILL_FRAME);
image.setExpression(expression);

//Adds image to the band
band.addElement(image);

//Adds band as background 
jasperDesign.setBackground(band);