c#-itext7-如何将文本添加到新页面?

Pio*_*otr 1 c# itext7

我正在使用 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();
   }
Run Code Online (Sandbox Code Playgroud)

Bru*_*gie 5

这在解释第二章中的构建模块:iText的7。请允许我复制该教程的片段:

如果我们使用了AreaBreakof type NEXT_PAGE,就会开始一个新页面;见图 2.11。

在此处输入图片说明

JekyllHydeV5 示例中,我们更改了一行:

AreaBreak nextPage = new AreaBreak(AreaBreakType.NEXT_PAGE);
Run Code Online (Sandbox Code Playgroud)

iText 现在不是跳到下一列,而是跳到下一页。

默认情况下,新创建的页面将与当前页面具有相同的页面大小。如果您希望 iText 创建另一个大小的页面,您可以使用接受PageSize对象作为参数的构造函数。例如:new AreaBreak(PageSize.A3)

还有一个AreaBreak类型LAST_PAGE。这AreaBreakType 将在不同渲染器之间切换时使用。

我很惊讶你会这样做:

doc.Add(new Paragraph(firstPageText));
pdfDocument.AddNewPage();
doc.Add(new Paragraph(secondPageText));
Run Code Online (Sandbox Code Playgroud)

虽然记录的方式是这样做的:

doc.Add(new Paragraph(firstPageText));
doc.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
doc.Add(new Paragraph(secondPageText));
Run Code Online (Sandbox Code Playgroud)