2017-03-17 27 views
0

私はPdfPTableを作成し、HTMLコンテンツが大きく、2ページを取るときには、WriteSelectedRowsを使用してテーブルを書きました。テーブルは第1ページではなく第2ページに書き込まれます。コンテンツ自体が1ページの場合、テーブルは第1ページに正しく書き込まれます。iText PdfPTable with writeSelectedRows

ページ数に関係なく1ページ目の表を書くのを手伝ってください。

PdfPCell c = new PdfPCell(ImageHeader, true); 
c.HorizontalAlignment = Element.ALIGN_LEFT; 
c.FixedHeight = cellHeight; 
c.Border = PdfPCell.NO_BORDER; 
head.AddCell(c); 
c = new PdfPCell(new Phrase("somePhrase", fontintestazione)); 
c.Border = PdfPCell.NO_BORDER; 
head.AddCell(c); 
c = new PdfPCell(new Phrase("someTextBlah", fontRight)); 
c.Border = PdfPCell.NO_BORDER; 
c.HorizontalAlignment = 1; 
c.BackgroundColor = new BaseColor(70, 130, 180); 
head.AddCell(c); 
head.WriteSelectedRows(0, -1, 10, page.Height - cellHeight + head.TotalHeight -30, writer.DirectContent); 

上記のコードは、私が追加しようとしているサンプルテーブルです。

答えて

1

生成されたhtmlの最初のページのみにpdftableを書き込むことができるeventhelperクラスを付けることができます。ここでは、あなたが使用する可能性のある例を示します

public class PdfEventHelper : PdfPageEventHelper 
{ 
    public PdfEventHelper() 
    { 

    } 
    public override void OnOpenDocument(PdfWriter writer, Document document) 
    { 
     base.OnOpenDocument(writer, document); 
    } 
    public override void OnStartPage(PdfWriter writer, Document document) 
    { 
     base.OnStartPage(writer, document); 
    } 
    public override void OnEndPage(PdfWriter writer, Document document) 
    { 
     if (writer.PageNumber == 1) 
     { 
      //replace this table with the table that you want to write on the first page 
      PdfPTable pdfTable = new PdfPTable(new[] { 1f, 1f, 1f, 1f }); 
      pdfTable.WriteSelectedRows(0, -1, 10, pdfTable.TotalHeight + 10, writer.DirectContent); 
      base.OnEndPage(writer, document); 
     } 

    } 
    public override void OnCloseDocument(PdfWriter writer, Document document) 
    { 
     base.OnCloseDocument(writer, document); 
    } 
} 

あなたはPdfPTableをコメントとしてコメントに追加できます。あなたのためにうまくいくでしょう

+0

ありがとう。それは動作します – RAJESHKUMAR

+0

あなたは答えとしてマークしてください –

関連する問題