2012-11-19 2 views
1

iText 라이브러리를 사용하여 PDF를 작성 중이며 PDF의 표의 배경 이미지를 설정할 수 없습니다. 이미지를 아래와 같이iText 라이브러리를 사용하여 PDF로 표에 배경 이미지를 적용하는 방법은 무엇입니까?

enter image description here

난이 배경을 설정할 사용하고 현재

편집 절대 위치까지 그 설정 이미지 나 테이블

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

하는 것이 상대적으로 설정할 가능한 다른 접근법이 있습니다.

하나는 이미지로 만든 패턴 색상을 사용하고 그 패턴 색상을 배경색으로 사용하는 것입니다. 그러나, 그것은 당신이 필요로하는 것과 일치하지 않는 것 같습니다. 여기에서 입증 된 바와 같이

귀하의 예를 바탕으로 나는 테이블 이벤트를 사용하는 것이 좋습니다 것입니다 :이 예에서 http://itextpdf.com/examples/iia.php?id=93

은 행의 배경 색상은 tableLayout() 방법에 그려집니다. 이 방법을 적용하고 색상이있는 직사각형을 그리는 대신 적절한 좌표에 이미지를 추가해야합니다.

+0

절대 위치에 이미지를 그리는 것을 원하지 않습니다. 테이블 이벤트를 사용하여 테이블 좌표에 따라 이미지를 설정하는 방법 – user1737884

+1

어? 절대 위치에 이미지를 그리는 것을 원하지 않는다고 말하는 것은 어리석은 짓입니다! 어떤 문서를 읽었습니까? 아니면 그냥 내 다리를 당기고 있니? 테이블 이벤트에서 float [] [] widths, float [] height와 같은 값을 얻습니다. 이 배열에는 필요한 모든 좌표가 포함됩니다. x = widths [0] [0], y = heights [0] - image.getScaledHeight() 좌표를 사용하여 절대 위치에서 이미지를 그립니다. –

관련 문제