這是我如何拆分大的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