1

我正在使用 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();
    }

}
}
4

1 回答 1

0

有不同的方法可能。

一种是使用由图像创建的图案颜色并将该图案颜色用作背景颜色。但是,这似乎与您需要的不匹配。

根据您的示例,我建议使用此处演示的表格事件:http: //itextpdf.com/examples/iia.php ?id=93

在这个例子中,行的背景颜色是在tableLayout()方法中绘制的。您需要调整此方法,而不是绘制彩色矩形,您需要在适当的坐标处添加图像。

于 2012-11-19T14:35:00.307 回答