我正在获取大量数据的PDF文件。目前的PDF为350 MB,大约有40000页。这当然会是很高兴得到较小的PDF文件,但这是我有现在:-(将巨大的40000页PDF分割为单页,itextsharp,outofmemoryexception
我可以在Acrobat Reader一些延迟加载时,但在那之后的Acrobat Reader快速打开它的工作。
现在我需要拆分大文件到单页,然后尝试从PDF页面看了一些收件人数据,然后发送给每个收件人应该得到每个特定收件人一两页。
这里我是非常小的代码到目前为止使用iTextSharp的:
var inFileName = @"huge350MB40000pages.pdf";
PdfReader reader = new PdfReader(inFileName);
var nbrPages = reader.NumberOfPages;
reader.Close();
接下来发生的第二行“新PdfReader”然后停留在那里大概10分钟,进程大小约1.7 GB,然后出现OutOfMemoryException异常。
我认为“新PdfReader”尝试读取整个PDF到内存中。
有没有其他的/更好的方法来做到这一点? 例如,我可以以某种方式只读取PDF文件的一部分到内存中,而不是一次性读取所有内容? 使用itextsharp以外的其他库可以更好地工作吗?
Wolfram Alpha表示,双面打印的40,000页文档将是80英寸高 - 超过2米。 – Cheeso
只是好奇心,这是什么PDF? –
http://stackoverflow.com/questions/656351/can-anyone-recommend-a-good-pdf-reading-library-for-net可能会有助于尝试另一个或两个库,以查看是否有更好的读取属性。 –