【发布时间】:2018-09-30 12:06:02
【问题描述】:
我需要将一个文档拆分为几个小文档。例如,如果文档有 7 页,我需要生成 7 个 pdf。
在 iTextSharp 中,我使用了以下代码,效果很好。但是,在 iText 7 中,不可能以同样的方式做到这一点。
iTextSharp 旧代码
var reader = new PdfReader(src);
for (int i = 1; i <= reader.NumberOfPages; i++)
{
var document = new Document();
var copy = new PdfCopy(document, new FileStream(result + i + ".pdf", FileMode.Create));
document.Open();
copy.AddPage(copy.GetImportedPage(reader, i));
document.Close();
}
iText 7,但不工作
第一个问题
我发现有 PdfSplitter,它可以将我的 pdf 拆分为小 pdf。然而,即使我的测试 pdf 有 7 页,即使GetNumberOfPages() 返回数字 7,拆分文档的数量也只有一个。
在这个linked documenation 中以某种方式展示了如何拆分文档。但是,我不知道如何制作与提到的类似的方法 - getNextPdfWriter
第二个问题
即使我有一个文件,它也是空的。我想知道如何设置正确的作家来创建正确的 pdf。分别如何设置阅读器,以便阅读拆分后的文档内容。
string result = outputPath + @"/page00";
using (pdfDocument = new PdfDocument(new PdfReader(pdfPath)))
{
var splitter = new PdfSplitter(pdfDocument);
var splittedDocs = splitter.SplitByPageCount(pdfDocument.GetNumberOfPages());
for (int i = 0; i < pdfDocument.GetNumberOfPages(); i++)
{
//how to set reader to read the content of splitted docs. Or how to set writer for splitted doc.
var pdfDoc = new PdfDocument(new PdfWriter(new FileStream(result + i + ".pdf", FileMode.Create)));
pdfDoc.Close();
splittedDocs[i].Close();
}
}
问题
如何在 .NET 核心中使用 iText 7 正确地将文档拆分为小文档
【问题讨论】:
标签: c# pdf .net-core itext itext7