iTextPdf 5.4.1 を使用しています。多くの行を含むテーブルがあり、テーブルが次のページに自動分割されるときに、画像を挿入してから別の改ページを挿入して、テーブルの行を続けたいと考えています。
例: テーブルが行数に基づいて 2 ページを占めるとします。
最終的な出力は次のようになります:
ページ 1: 最初のページに収まるテーブル行
ページ 2: 画像
ページ 3: 残りのテーブル行。
そのため、テーブルが分割されるたびに、画像を挿入してから改ページしたいと考えています。
次のように、PdfPTableEventSplit インターフェイスを使用しようとしています。
public class TableSplitEvent implements PdfPTableEventSplit
{
private Image pageImage;
private Document pdfDoc;
public TableSplitEvent( Image pageImage, Document pdfDoc )
{
super();
this.pageImage = pageImage;
this.pdfDoc = pdfDoc;
}
@Override
public void splitTable( PdfPTable table )
{
try
{
pdfDoc.add( pageImage );
pdfDoc.newPage();
}
catch ( DocumentException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void tableLayout( PdfPTable table, float[][] widths, float[] heights, int headerRows, int rowStart,
PdfContentByte[] canvases )
{
}
}
ただし、テーブルがレンダリングされた後、pdf に書き込まれる前にイベントが呼び出されるように見えるため、それはうまくいかないようです。
私は取得しています:
ページ1:画像
ページ2:テーブル行
ページ3:テーブル行
誰もこれを行う方法を知っていますか?