概要
.net iTextSharp PdfPTable跨页自动加表头
例如:
在使用 iTextSharp 库的 PdfPTable 时,如果表格内容跨页,如果希望在每一页的顶部自动显示表头。要实现这一功能,可以通过设置 PdfPTable 的 HeaderRows 属性来指定每页显示多少行表头。
代码
using iTextSharp.text;
using iTextSharp.text.pdf;
using System;
using System.IO;
class Program
{
static void Main()
{
// 创建一个文档对象
Document doc = new Document(PageSize.A4);
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
PdfWriter writer = PdfWriter.GetInstance(doc, fs);
doc.Open();
// 创建一个PdfPTable(指定列数为3)
PdfPTable table = new PdfPTable(3);
table.WidthPercentage = 100;
// 设置表头
table.AddCell("Header 1");
table.AddCell("Header 2");
table.AddCell("Header 3");
// 设置表头在每一页都重复显示
table.HeaderRows = 1;
// 添加数据行
for (int i = 1; i <= 50; i++)
{
table.AddCell($"Row {i} - Column 1");
table.AddCell($"Row {i} - Column 2");
table.AddCell($"Row {i} - Column 3");
}
// 将表格添加到文档中
doc.Add(table);
doc.Close();
}
Console.WriteLine("PDF created successfully!");
}
}
小结
关键部分说明: table.HeaderRows = 1;:这行代码确保在每一页的顶部显示表头。设置为 1 表示每一页都会重复显示第一行作为表头。如果表格有多行表头,可以增加这个值。 PdfPTable 创建时指定了列数为 3,并添加了表头行和数据行。 使用 PdfWriter.GetInstance(doc, fs); 将文档内容输出到指定文件。 其他可选配置: table.WidthPercentage = 100;:设置表格宽度为页面的 100%,确保表格跨越整个页面宽度。 如果你有复杂的表头,或者想在每一页上都重复不同的行,你可以通过调整 HeaderRows 的值,或者自定义表头内容。 这个方法可以帮助你在跨页时自动添加表头。