Я получаю огромные PDF-файлы с большим количеством данных. Текущий PDF - 350 МБ и около 40000 страниц. Конечно, было бы неплохо получить PDF-файлы меньшего размера, но сейчас я должен работать с этим: - (
Я могу открыть его в Acrobat Reader с некоторой задержкой при загрузке, но после этого Acrobat Reader работает быстро.
Теперь мне нужно разбить огромный файл на отдельные страницы, затем попытаться прочитать некоторые данные получателей со страниц PDF, а затем отправить одну или две страницы, которые каждый получатель должен получить каждому конкретному получателю.
Вот мой очень маленький код, использующий itextsharp:
var inFileName = @"huge350MB40000pages.pdf";
PdfReader reader = new PdfReader(inFileName);
var nbrPages = reader.NumberOfPages;
reader.Close();
Что происходит, когда дело доходит до второй строки "new PdfReader", затем остается там, возможно, 10 минут, процесс достигает примерно 1,7 ГБ, и затем я получаю исключение OutOfMemoryException.
Я думаю, что "новый PdfReader" пытается прочитать весь PDF в память.
Есть ли другой / лучший способ сделать это?
Например, могу ли я как-то прочитать только часть файла PDF в память, а не все сразу?
Может ли он работать лучше с использованием какой-нибудь другой библиотеки, чем itextsharp?