我正在使用iText库创建PDF,但无法为PDF中的表格设置背景图像。
如下图
修改
目前我用它来设置背景,将其设置图像设置为绝对位置,我想将其设置为相对于表格
class CellBackgroundPic implements PdfPTableEvent {
Activity mActivity;
public CellBackgroundPic (Activity Activity){
this.mActivity=Activity;
}
Image bgImage;
public void tableLayout(PdfPTable table, float[][] widths, float[] heights,
int headerRows, int rowStart, PdfContentByte[] canvases){
PdfContentByte pdfContentByte = canvases[PdfPTable.BACKGROUNDCANVAS];
Drawable myImage = mActivity.getResources().getDrawable(R.drawable.table_bg);
Bitmap bitmap = ((BitmapDrawable) myImage).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] bitmapdata = stream.toByteArray();
try {
bgImage = Image.getInstance(bitmapdata);
bgImage.setAbsolutePosition(330f, 642f);
pdfContentByte.addImage(bgImage);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
可能有不同的方法。
一种方法是使用用图像创建的图案颜色,并将该图案颜色用作背景颜色。但是,这似乎与您的需求不匹配。
根据您的示例,我建议使用如下所示的表事件: http://itextpdf.com/examples/iia.php?id=93
在此示例中,行的背景颜色是在tableLayout()
方法中绘制的。您需要调整此方法,而不是绘制彩色矩形,您需要在适当的坐标处添加图像。