使用 itext 7 在 PDF 中添加新页面
Posted
技术标签:
【中文标题】使用 itext 7 在 PDF 中添加新页面【英文标题】:Adding a new page in PDF using itext 7 【发布时间】:2017-04-13 01:38:26 【问题描述】:我正在尝试使用带有以下代码的 iText 7 创建 PDF 文档,并且我的 PDF 文档内容在生成时在同一页面中重叠。(即在第 1 页中)。
我看到了
document.newPage();
iText 7 中缺少方法。如何在 iText 7 中不使用 pdfDocumet.copyPages(...) 或 PDFmerger 将页面添加到我的 PDF 文档。
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
pdfDoc.addNewPage();
Document PageOnedocument = new Document(pdfDoc,PageSize.A4);
addPageOneContents(PageOnedocument);
pdfDoc.addNewPage();
Document PageTwodocument = new Document(pdfDoc,PageSize.A4);
addPageTwoContents(PageTwodocument);
pdfDoc.close();
PageOnedocument.close();
PageTwodocument.close();
【问题讨论】:
【参考方案1】:如果您正在使用 C# 并重构引用 iText 5 的代码(就像我一样),请尝试将 iText 7 方法置于覆盖中。
public static class Itext7DocumentExtensions
public static void NewPage(this Document document)
document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));
现在您可以拨打document.NewPage();
【讨论】:
【参考方案2】:在 iText 7 中,newPage
方法已成为区域中断的特例:
Document document = ...;
[....add some content...]
document.add(new AreaBreak(AreaBreakType.NEXT_PAGE));
[...add some content on next page...]
【讨论】:
这是否记录在某处? @AllirionX 在itextpdf.com/en/resources/books/itext-7-building-blocks/… - 但它在更复杂的AreaBreak
用法中有点隐藏。
谢谢!这非常有用,我在尝试将一个简单的段落添加到新页面时很生气。以上是关于使用 itext 7 在 PDF 中添加新页面的主要内容,如果未能解决你的问题,请参考以下文章
使用 iTextSharp 添加水印文本时,PAC 工具中出现 iText 7 警告
如何从iText 7中的PDF格式的轮廓/书签访问矩形,拟合类型,缩放,页码