2012-02-16 5 views
0

есть способ загрузки (больших) файлов PDF только частично? Итак, скажем: не загружайте полный PDF-файл, а только первые 5 страниц.Частичная загрузка PDF в память

Потому что я фактически обрабатываю большие PDF-файлы (30-50 МБ), и когда я вызываю CGPDFRetain весь документ, поэтому полные 30-50 МБ сохраняются в памяти.

Может ли кто-нибудь помочь мне в этом? Можно ли извлекать отдельные страницы из PDF без предварительной загрузки полного PDF-файла в память?

Может ли кто-нибудь помочь мне с этой проблемой?

Обновление: Из-за того, что моему приложению необходимо поддерживать автономный доступ, файлы PDF следует загружать из локального хранилища.

Обновление 2: Я уже пробовал разные стратегии, но приложение все еще находится на грани памяти, потому что я полностью загружаю свой PDF в память за один шаг. Но как-то должно быть возможно поддерживать большие файлы PDF, не так ли?

ответ

1

Я не знаю, что такое CGPDFRetain, поэтому я могу быть полностью выключен. PDF разработан таким образом, что вам нужны только части его, чтобы сделать его правильно. Существует нечто, называемое «оптимизированным в Интернете» PDF, который имеет свои объекты, устроенные особым образом. Каждый веб-сервер может отправлять байтовый диапазон документа, и эти два механизма позволяют частичную загрузку PDF-файла.

Вы должны уточнить, где вы загружаете PDF.

0

Это не так. CGPDFDocument POINTS на ваше дисковое пространство и имеет части, кэшированные в памяти, но не весь документ.

Есть некоторые проблемы с CGPDFDocument, становящимися слишком жадными с памятью, но в этом случае просто уничтожьте и заново создайте CGPDFDocument, и все в порядке. В противном случае ваше приложение может просто потерпеть крах после того, как CGPDFDocument выделит слишком много памяти.

Смежные вопросы