2011-08-01 76 views
4

私はiText(iTextSharp 5.1.1)を使用していますが、いくつかのテーブルを作成しようとしています。iTextテーブルPdfPCellが複数の行にまたがってページ間で分割されないようにするにはどうすればいいですか?

最初のテーブルの列は、複数の行にまたがっています。以前の内容に応じて、列が2ページに分割されることがありました。場合によっては、最初のページに1行しか残らず、ラベルを表示するのに十分な高さにはならないことがあります。

ドキュメントにドキュメントが追加された場合、2つのページにまたがる列があるかどうかを検出する方法はないので、この動作を防ぐためにいくつかの行を入力できます。

セルをに分割する方法はありますか?

+0

サンプルPDFまたは1つのイメージを投稿すると、問題の原因を確認できますか?私は2列の 'PdfPTable'を作成し、5行にまたがる' PdfPCell'を追加しました。次に、長いテキストを含む5つの 'PdfPCells 'を追加して、テーブルを2ページにまたがるようにしました。 (以下のサンプルPDF)スパンされたセルの内容は最初のページの上部に表示され、2番目のページには最初の列の空白があります。 http://chris.vendiadvertising.com/Stackoverflow/6904151-RowSpanning/Output.pdf –

+0

あなたの例に関して、私が本当に必要とするのは、4行目が壊れないようにすることですが、代わりに別のページにその全体を配置することです。基本的には、2つのページにまたがるセルがないことを意味します。私が保証できるのは、セルが数行しかないということです(つまり、新しいページの冒頭に配置された場合)。 –

+0

また、忘れてしまいました(関連性がないかもしれません)、最初の列(複数の行にまたがる)は90度回転しています。 –

答えて

0

まあ、私はJavaでiTextの2.1.7を使用しての例をコード化:

PdfPTable table = new PdfPTable(2); 
table.setSplitLate(true); // default value 
PdfPCell largeCell = 
     new PdfPCell(new Paragraph("Lorem ipsum dolor sit amet,\r\n" 
       + "consectetur adipiscing elit. Curabitur\r\n" 
       + "vel nisl quis turpis molestie blandit.\r\n" 
       + "Donec a ligula sit amet quam feugiat\r\n" 
       + "aliquet in id augue. Etiam placerat\r\n" 
       + "massa ac ligula dictum convallis.\r\n" 
       + "Mauris in leo quis lorem facilisis\r\n" 
       + "tincidunt. Praesent lorem libero,\r\n" 
       + "porttitor tincidunt egestas consequat,\r\n" 
       + "tempor quis erat. Sed lorem ipsum,\r\n" 
       + "posuere a ornare ac, viverra ut diam. In\r\n" 
       + "porta ultrices tristique. Nulla non libero\r\n" 
       + "a nisi pharetra consequat. Vestibulum\r\n" 
       + "nunc urna, lobortis id ultricies vitae,\r\n" 
       + "fermentum eu magna. Duis nibh lacus,\r\n" 
       + "adipiscing at tempor eget, interdum\r\n" + "quis libero.")); 

PdfPCell cell = new PdfPCell(new Paragraph("Long Column")); 
cell.setRowspan(5); 
table.addCell(cell); 
for (int i = 0; i < 5; i++) 
{ 
    table.addCell(largeCell); 
} 

そして、それはKornelijeで尋ねたとして、私が使用している場合...「間違った」出力のみ、生成される非常にうまく機能table.setSplitLate(false)ですので、デフォルト値のtrueはすべて問題ありません。

関連する問題