1

iText ライブラリを使用して PDF を作成していますが、PDF の表の背景画像を設定できませんでした。

下の画像のようにここに画像の説明を入力

編集

現在、これを使用して Background を設定しています。その設定画像を絶対位置に設定しています。テーブルに対して相対的に設定したい

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

There are different approaches possible.

One would be to use a pattern color created with an image and use that pattern color as background color. However, that doesn't seem to be a match with what you need.

Based on your example I would suggest using a table event as demonstrated here: http://itextpdf.com/examples/iia.php?id=93

In this example, the background color of the rows is drawn in the tableLayout() method. You need to adapt this method and instead of drawing colored rectangles, you need to add an image at the appropriate coordinates.

于 2012-11-19T14:35:00.307 に答える