1

Itext を使用する私の Java プロジェクトでは、pdf ファイルを作成しています。このファイルでは、別のテーブルのセル内に大きなテーブルを挿入しています。

テーブルの内容がページよりも大きい場合、問題に直面しています。テーブルは次のページに持ち越されます。代わりに、前のページのデータの一部が必要で、ページを超えるデータのみが次のページに移動する必要があります。

これを達成する方法は、以下が私が使用しているコードです。

        PdfPTable outerTable = new PdfPTable(2); 
        outerTable.setHeaderRows(1);
        outerTable.setSpacingBefore(20);
        outerTable.setWidthPercentage(100);

        Phrase str_head = new Phrase("Sample Image \n", subFont);
        Phrase act_head = new Phrase("Steps \n", subFont);

        PdfPCell cell2;
        cell2 = new PdfPCell(act_head); 
        outerTable.addCell(cell2); 

        cell2 = new PdfPCell(str_head);
        cell2.setBorder(Rectangle.NO_BORDER);
        outerTable.addCell(cell2);

       /* content row*/

        cell2 = new PdfPCell("-----Sample-------");
        cell2.setBorder(Rectangle.NO_BORDER);
        outerTable.addCell(cell2);


        PdfPTable innerTable = new PdfPTable(2);
        ---------------
        ---------------
        innerTable.add("XXX")//add more rows in so that page will overlow
        ---------------
        ---------------

        cell2 = new PdfPCell(innerTable);
        cell2.setBorder(Rectangle.NO_BORDER);
        outerTable.addCell(cell2);
4

1 に答える 1

2

使用しているitextのバージョンがわかっている場合は非常に簡単です。setSplitLate(false)、の 2 つのプロパティがありますsetSplitRows(true)。したがって、両方のテーブルにこれらのプロパティを設定する必要があります。詳細については、ドキュメントを参照してください。コードは次のようになります。

outerTable.setSplitLate(false);
innerTable.setSplitLate(false);
outerTable.setSplitRows(true);
innerTable.setSplitRows(true);

itext 2.1.4でずっと前に使用していました。したがって、これらが現在のバージョンでサポートされているかどうかを確認してください。

于 2013-01-21T20:23:02.193 に答える