iText を使用して PDF を生成しています。各ページにヘッダー (およびフッター) を追加するカスタム PdfPageEventHelper を作成しました。
私の問題は、画像を追加する方法がわからないため、「ヘッダーボックス」に表示されることです。ドキュメントのコンテンツ自体に画像を追加する方法しか知りません(それが理にかなっている場合)。
ここにいくつかのコードスニペットがあります...
public static void main(String[] args) {
Rectangle headerBox = new Rectangle(36, 54, 559, 788);
/* ... */
Document document = new Document(PageSize.A4, 36, 36, 154, 54);
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(FILENAME));
HeaderFooter event = new HeaderFooter();
writer.setBoxSize("headerBox", headerBox);
writer.setPageEvent(event);
document.open();
addContent();
document.close();
}
static class HeaderFooter extends PdfPageEventHelper {
public void onEndPage(PdfWriter writer, Document document) {
Rectangle rect = writer.getBoxSize("headerBox");
// add header text
ColumnText.showTextAligned(writer.getDirectContent(),
Element.ALIGN_RIGHT, new Phrase("Hello", fontHeader1),
rect.getLeft(), rect.getTop(), 0);
// add header image
try {
Image img = Image.getInstance("c:/mylogo.PNG");
img.scaleToFit(100,100);
document.add(img);
} catch (Exception x) {
x.printStackTrace();
}
}
}
ヘッダーに画像を追加する適切な方法に関する提案は大歓迎です!!
ロブ