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

时间:2017-11-16 11:01:58

标签: 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();
   }

1 个答案:

答案 0 :(得分:2)

chapter 2iText 7: Building Blocks解释了这一点。请允许我复制该教程的片段:

  

如果我们使用AreaBreak类型NEXT_PAGE,则会启动新页面;见图2.11。

     

enter image description here

     

在   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));