【发布时间】:2014-05-12 14:44:06
【问题描述】:
我正在使用 iTextSharp 尝试向生成的 PDF 添加页眉和页脚,但是,如果我尝试添加宽度为页面 100% 的页眉,我会遇到一些问题。
所以我做了以下事情:
1) 我创建了一个名为 PdfHeaderFooter 的类,它扩展了 iTextSharp PdfPageEventHelper 类
2) 进入 PdfHeaderFooter 我已经实现了生成标题的 OnStartPage() 方法:
// write on start of each page
public override void OnStartPage(PdfWriter writer, Document document)
{
base.OnStartPage(writer, document);
PdfPTable tabHead = new PdfPTable(new float[] { 1F });
PdfPCell cell;
//tabHead.TotalWidth = 300F;
tabHead.WidthPercentage = 100;
cell = new PdfPCell(new Phrase("Header"));
tabHead.AddCell(cell);
tabHead.WriteSelectedRows(0, -1, 150, document.Top, writer.DirectContent);
}
如果我使用类似 tabHead.TotalWidth = 300F; insted tabHead.WidthPercentage = 100; 之类的东西,它工作得很好,但如果我尝试将宽度设置为 100% tabHead 表(就像我在前面的示例中所做的那样)当它调用 tabHead.WriteSelectedRows(0, -1, 150, document.Top, writer.DirectContent) 方法时,它会抛出以下异常:
表格宽度必须大于零。
为什么?问题是什么?如果我将表格设置为 100%,它怎么可能有 0 大小?
有人可以帮我解决这个问题吗?
Tnx
【问题讨论】:
-
想想百分比是多少。您将宽度百分比设置为 100%。相信你还是要设置
TotalWidth。
标签: c# pdf pdf-generation itextsharp itext