실제 요구 사항에 따라 원하는 것을 달성하는 방법은 여러 가지가 있습니다.
접근법 1 : 첫 번째 방법은 WatermarkedImages1 예에서 설명
. 이 예에서는 PdfTemplate
을 만들고 여기에 이미지를 추가하고 해당 이미지 위에 작성된 일부 텍스트를 추가합니다. 그런 다음이 PdfTemplate
을 이미지 안에 넣고 그 이미지를 워터 마크와 함께 셀에 추가 할 수 있습니다. 두 번째 방법은 WatermarkedImages2 예에서 설명 2.A
public Image getWatermarkedImage(PdfContentByte cb, Image img, String watermark) throws DocumentException {
float width = img.getScaledWidth();
float height = img.getScaledHeight();
PdfTemplate template = cb.createTemplate(width, height);
template.addImage(img, width, 0, 0, height, 0, 0);
ColumnText.showTextAligned(template, Element.ALIGN_CENTER,
new Phrase(watermark, FONT), width/2, height/2, 30);
return Image.getInstance(template);
}
접근법 :
이
모든 마법을 수행하는 방법이다. 이 경우 각 이미지를 PdfPCell
에 추가합니다. 이 PdfPCell
은 페이지 너비에 맞게 이미지의 크기를 조정합니다. 모든 이미지는 더 많거나 적은 같은 크기가있는 경우이 방법을 사용합니다 PdfPCell cell;
cell = new PdfPCell(Image.getInstance(IMAGE1), true);
cell.setCellEvent(new WatermarkedCell("Bruno"));
table.addCell(cell);
cell = new PdfPCell(Image.getInstance(IMAGE2), true);
cell.setCellEvent(new WatermarkedCell("Dog"));
table.addCell(cell);
cell = new PdfPCell(Image.getInstance(IMAGE3), true);
cell.setCellEvent(new WatermarkedCell("Fox"));
table.addCell(cell);
cell = new PdfPCell(Image.getInstance(IMAGE4), true);
cell.setCellEvent(new WatermarkedCell("Bruno and Ingeborg"));
table.addCell(cell);
:
class WatermarkedCell implements PdfPCellEvent {
String watermark;
public WatermarkedCell(String watermark) {
this.watermark = watermark;
}
public void cellLayout(PdfPCell cell, Rectangle position,
PdfContentByte[] canvases) {
PdfContentByte canvas = canvases[PdfPTable.TEXTCANVAS];
ColumnText.showTextAligned(canvas, Element.ALIGN_CENTER,
new Phrase(watermark, FONT),
(position.getLeft() + position.getRight())/2,
(position.getBottom() + position.getTop())/2, 30);
}
}
이 세포 이벤트는 다음과 같이 사용할 수 있습니다 워터 마크를 추가하려면, 우리는 세포 이벤트를 사용 페이지에 이미지를 맞추는 것에 대해 걱정하지 않으려는 경우
접근 2.B :
대신의 이미지가 포함 된 셀의 셀 이벤트의 TEXTCANVAS
에 텍스트를 추가, 당신은 또한의 셀 이벤트의 BACKGROUNDCANVAS
에 이미지를 추가 할 수 있습니다 텍스트가 포함 된 셀
헤드 업 : 귀하의 질문에`img.SetAbsolutePosition을 언급 How to add text to an image?
시도의 중복으로 폐쇄 될 위험이()'가있다. – Sinatr
나는 아무 일도 일어나지 않았다. ( –
아마'DirectContentUnder'를 사용해야 할까? [here] (http://itextpdf.com/sandbox/images/BackgroundImage)를 보아라. – Sinatr