这是我如何拆分大的PDF(144 MB)iTextSharp的:分裂的页面大小等于文件大小
public int SplitAndSave(string inputPath, string outputPath)
{
FileInfo file = new FileInfo(inputPath);
string name = file.Name.Substring(0, file.Name.LastIndexOf("."));
using (PdfReader reader = new PdfReader(inputPath))
{
for (int pagenumber = 1; pagenumber <= reader.NumberOfPages; pagenumber++)
{
string filename = pagenumber.ToString() + ".pdf";
Document document = new Document();
PdfCopy copy = new PdfCopy(document, new FileStream(outputPath + "\\" + filename, FileMode.Create));
document.Open();
copy.AddPage(copy.GetImportedPage(reader, pagenumber));
document.Close();
}
return reader.NumberOfPages;
}
}
对于大多数PDF文件(小尺寸,我想老格式),一切工作正常。但对于一个大的(也许使用类似refstreams的东西...来获得最佳压缩效果),拼写页面将作为一个页面打开,但其大小等于pdf大小。我能做什么?
不幸的是,有问题的PDF文件需要分析。你能提供样品吗?我想到的一个原因是:在每个页面中都有文档引用文档中的所有资源,也就是页面本身不需要的文档。在这种文件的情况下,你的代码将把所有的资源与每一页一起复制。 – mkl 2013-03-22 09:54:16
您需要提供什么示例?此代码是合并代码 - inputpath - pdf位置,outputpath - 拆分页面的文件夹。你有什么想法如何“脱钩”资源和网页? – NET 2013-03-22 10:01:30
不是样本*代码*,而是首先需要分析的样本* PDF文档*。我提到的原因是一个可能的原因。无论其原因在你的情况下,我不知道。 – mkl 2013-03-22 10:08:19