我使用itext7创建Pdfs。它允许我在第一页添加段落,但我不确定如何将内容添加到第二页。如果我在调用AddNewPage()后创建Canvas,那么它工作正常,但是当我使用段落并将其添加到文档时它不起作用。感谢帮助。在我的示例中,firstPageText和secondPageText将显示在第一页上:
protected void CreatePdf(string filePath, string firstPageText, string secondPageText)
{
PdfWriter writer = new PdfWriter(filePath);
PdfDocument pdfDocument = new PdfDocument(writer);
Document doc = new Document(pdfDocument);
doc.Add(new Paragraph(firstPageText));
pdfDocument.AddNewPage();
doc.Add(new Paragraph(secondPageText));
doc.Close();
}
答案 0 :(得分:2)
chapter 2的iText 7: Building Blocks解释了这一点。请允许我复制该教程的片段:
如果我们使用
AreaBreak
类型NEXT_PAGE
,则会启动新页面;见图2.11。在 JekyllHydeV5 例如,我们更改了一行:
AreaBreak nextPage = new AreaBreak(AreaBreakType.NEXT_PAGE);
iText现在不会跳到下一列,而是跳到下一列 页。
默认情况下,新创建的页面将具有相同的页面大小 当前页面。如果您希望iText创建另一个页面 size,您可以使用接受
PageSize
对象的构造函数 一个参数。例如:new AreaBreak(PageSize.A3)
。还有
AreaBreak
类型LAST_PAGE
。这AreaBreakType
在不同的渲染器之间切换时使用。
令我惊讶的是你这样做:
doc.Add(new Paragraph(firstPageText));
pdfDocument.AddNewPage();
doc.Add(new Paragraph(secondPageText));
虽然记录的方法是这样做:
doc.Add(new Paragraph(firstPageText));
doc.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
doc.Add(new Paragraph(secondPageText));