Прогрессивная загрузка pdf
Я хочу постепенно загружать PDF-файл в приложение для iPad. Я не уверен, как это сделать, и Google не очень помог. Может ли кто-нибудь помочь мне понять концепции здесь, пожалуйста. Я планирую визуализировать в основной графике. Благодарю.
3 ответа
Вы имеете в виду, что хотите рендерить страницы в формате PDF до завершения загрузки? Если да:
Прежде всего, формат PDF изначально не был предназначен для этого.
Позволь мне объяснить. PDF-файл состоит из нескольких объектов и внешних ссылок. xref - это таблица, содержащая местоположение (в байтах от начала) каждого объекта в файле, поэтому объекты могут быть расположены в произвольных местах в файле. Хуже того, сама внешняя ссылка находится в конце файла, поэтому вы не можете найти какой-либо объект в файле, пока не загрузите его.
Итак, PDF предназначен для произвольного доступа. На самом деле, протокол HTTP это позволяет, поэтому, если вам это действительно нужно, вы можете попробовать реализовать его:)
Хорошая новость для вас: начиная с PDF-1.2 существует специальная функция под названием "Линеаризованный PDF". Он предназначен именно для вашей задачи, поэтому вы можете отобразить первую страницу перед следующей, если она была загружена. Вы можете погуглить или проверить PDF ссылку для более подробной информации. Самое главное: вы должны линеаризовать pdf-файл с помощью специальных инструментов, чтобы не каждый pdf-файл отображался постепенно.
Плохая новость для вас: похоже, основная графика не поддерживает. Я не пробовал на самом деле, но я не нашел ничего линеаризованного PDF в основной графической документации. (Пожалуйста, дайте мне знать, если вы найдете что-нибудь.) Так что вам может понадобиться отрендерить PDF вручную.
Не совсем уверенно для iPad, но по умолчанию функция "Сохранить как..." в Acrobat будет оптимизирована как "Быстрый просмотр через Интернет", что позволяет загружать страницу за раз вместо всего документа за один раз.
http://www.adobe.com/designcenter-archive/acrobat/articles/acr6optimize/acr6optimize.pdf
Linearzied PDF будет соответствовать вашим потребностям. Вам нужен способный читатель, например, от Adobe, чтобы использовать эту функцию.