Частичная загрузка PDF в память - PullRequest
0 голосов
/ 16 февраля 2012

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

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

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

0 голосов
/ 25 апреля 2012

Это не так.CGPDFDocument УКАЗЫВАЕТ на ваше дисковое пространство и содержит части, кэшированные в памяти, но не весь документ.

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

...