【问题标题】:iText PdfPTable with writeSelectedRows带有 writeSelectedRows 的 iText PdfPTable
【发布时间】:2017-03-17 01:31:16
【问题描述】:

我创建了一个 PdfPTable 并使用 WriteSelectedRows 编写表格,每当 HTML 内容很大并占用两页时,表格就会写入第二页而不是第一页。如果内容本身是一页,那么表格将正确写入第一页。

无论页数如何,请帮助我在第 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);

以上代码是我要添加的示例表。

【问题讨论】:

    标签: c# itext


    【解决方案1】:

    您可以附加一个 eventhelper 类,您可以在其中仅将 pdftable 写入生成的 html 的第一页。这是您可以使用的示例

    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。会为你做的很好

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      相关资源
      最近更新 更多