我需要将一个文档拆分为几个小文档。例如,如果文档有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++)
{
var pdfDoc = new PdfDocument(new PdfWriter(new FileStream(result + i + ".pdf", FileMode.Create)));
pdfDoc.Close();
splittedDocs[i].Close();
}
}
问题
如何在中正确地将文档拆分为小文档。NET core with iText 7