我需要把一个文件分成几个小文件。例如,如果文档有7页,我需要生成7个PDF。
在iTextSharp中,我使用了以下代码,运行得非常好。然而,在iText 7中,不可能以同样的方式进行。
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();
}
第一个问题
我发现有一个PdfSplitter
,它可以将我的pdf文件拆分成小的pdf文件。然而,即使是我的测试pdf也有7页,甚至GetNumberOfPages()
返回数字7,被拆分的文档的数量只是一个。
在这个链接文档中,以某种方式展示了如何拆分文档。然而,我不知道如何使用与前面提到的方法类似的方法-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
嗯,这很简单。根据链接留档,我做了以下操作:
创建PdfSplitter的自定义拆分器重写功能。
class CustomSplitter : PdfSplitter
{
private int _order;
private readonly string _destinationFolder;
public CustomSplitter(PdfDocument pdfDocument, string destinationFolder) : base(pdfDocument)
{
_destinationFolder = destinationFolder;
_order = 0;
}
protected override PdfWriter GetNextPdfWriter(PageRange documentPageRange)
{
return new PdfWriter(_destinationFolder + "splitDocument1_" + _order++ + ".pdf");
}
}
然后用它来拆分PDF文档。别忘了关闭拆分的文档。我想指出一件事SplitByPageCount
-它根据应该拆分的位置获取数字SplitByPageCount(1)
将PDF文档拆分为一页。我真的误解了这种方法。
using (var pdfDoc = new PdfDocument(new PdfReader("doc.pdf")))
{
var outputDir = @"C:\";
var splitter = new CustomSplitter(pdfDoc, outputDir);
var splittedDocs = splitter.SplitByPageCount(1);
foreach (var splittedDoc in splittedDocs)
{
splittedDoc.Close();
}
}
结果是几个pdf。
我正在尝试将一个PDF文档拆分为多个文档,其中每个文档包含的最大页数小于最大文件大小。 我的代码目前可以在Eclipse上运行,但是当我点击. jar文件时,java类中的静态方法似乎崩溃了(但是我似乎抓不到异常)。 不工作的代码是: myListOfDocuments=mysplitter。拆分(文件); 在调用上述行时,JVM会以某种方式退出静态方法。加载似乎工作正常,如下所示:PDDocum
在上一章中,我们已经了解了如何将JavaScript添加到PDF文档中。 现在让我们学习如何将给定的PDF文档拆分成多个文档。 拆分PDF文档中的页面 您可以使用名为Splitter的类将给定的PDF文档拆分为多个PDF文档。 此类用于将给定的PDF文档拆分为多个其他文档。 以下是拆分现有PDF文档的步骤 第1步:加载现有PDF文档 使用PDDocument类的静态方法load()加载现有PDF文
问题内容: 我想使用命令 将一个PDF拆分为许多其他PDF。但是我发现有一个问题:拆分的PDF为“ ActiveMQ In Action(Manning-2011).pdf”,它的大小为14.1MB。但是当我跑步时 每个PDF都大于79MB!我该如何预防? 问题答案: 这是PDFBox 2.0.2中的一个已知错误。拆分在2.0.1中工作正常,在2.0.3中又可以工作。“错误的”代码已经恢复。问题的
我面临以下用例: 我收到一个包含许多文档的pdf。每个文档具有不同的页数。它们由条形码页分隔。 是否可以拆分包含多个文档的多页PDF,这些文档由带有条形码的页面分隔,并为每个文档创建一个新的PDF? 我听说我们可以用Itext:https://developers.itextpdf.com/examples/stamping-content-existing-pdfs/clone-splittin
问题内容: 如何将Word文档转换为PDF,其中文档包含各种内容,例如表格。尝试使用iText时,原始文档看起来与转换后的PDF不同。有没有我可以使用的开源API /库,而不是调用可执行文件? 问题答案: 这是一项艰巨的任务,如果您想要完美的结果(如果不使用Word则不可能),则难度就更大了,因为仅使用纯Java即可为您完成所有操作且都是开源的API数量为零,我相信( 更新:我错了,请参见下文 )
主要内容:分割PDF文档中的页面,示例在前一章中,我们已经看到了如何将JavaScript添加到PDF文档。 现在来学习如何将给定的PDF文档分成多个文档。 分割PDF文档中的页面 可以使用类将给定的PDF文档分割为多个PDF文档。 该类用于将给定的PDF文档分成几个其他文档。 以下是拆分现有PDF文档的步骤 第1步:加载现有的PDF文档 使用类的静态方法加载现有的PDF文档。 此方法接受一个文件对象作为参数,因为这是一个静态方法,可