1

iText 5.1.3 を使用しており、PDF ドキュメントにヘッダーを追加したいと考えています。ここに投稿された既知のソリューションを使用しました: http://itextpdf.com/examples/iia.php?id=104

このソリューションでは、PdfPageEventHelperクラスを使用し、メソッドをオーバーライドして、onEndPage()すべてのページを終了した直後にヘッダーを追加しました。上記のリンクで提供されている例は、ドキュメントのヘッダーとしてテーブルを追加するため、正常に機能します。そのテーブルの一部のセルにRowspanおよび/またはColspanを持たせたいという1つの違いでまったく同じことをしようとしています。

試してみたところ、 の使用は の場合とはtable.writeSelectedRows()異なることがわかりました。これは、私がやろうとしていることのサンプルです:document.add(table)RowspanonEndPage

PdfPTable mytable = new PdfPTable(3);
mytable.setTotalWidth(527);
PdfPCell cell1 = new PdfPCell(new Phrase("Hello"));
cell1.setColspan(2);
cell1.setRowspan(2);
mytable.addCell(cell1);

PdfPCell cell2 = new PdfPCell(new Phrase("Girls !"));
mytable.addCell(cell2);

PdfPCell cell3 = new PdfPCell(new Phrase("Boys !"));
mytable.addCell(cell3);

mytable.writeSelectedRows(0, -1, 34, 803, writer.getDirectContent());

左のセルを「Hello」で 2x2 にする代わりに、「Hello」セルを 2x2 ではなく 1x2 として取得します

何か案は?

4

2 に答える 2

4

まあ..私は自分で解決策を見つけました:Dそれは単に次のものに置き換えるだけですmytable.writeSelectedRows(0, -1, 34, 803, writer.getDirectContent());:

ColumnText column = new ColumnText(writer.getDirectContent());
column.addElement(mytable);
column.setSimpleColumn(-12, -20, 604, 803); // set LLx, LLy, URx, and URy of the header
column.go();

それだけです:)うまくいきました:)

于 2012-12-03T09:35:40.390 に答える
0

iText-2.1.7 を使用すると、iText writeSelectedRows が rowSpan で機能しません。rowSpan セルが他の行に拡張されませんが、回避策があります。

ArrayList tmp = table.getRows(0, table.getRows().size());
table.getRows().clear();
table.getRows().addAll(tmp);
table.writeSelectedRows(0, -1, x, y, directContent);
于 2014-03-16T00:20:10.247 に答える