Я использую PdfBox 1.8, перенесенный на android (https://github.com/TomRoush/PdfBox-Android), чтобы отображать страницы в приложении.
Для загрузки документа размером 7 МБ, который я использую, требуется 8 секунд , то для рендеринга каждой страницы требуется 0,5–2 секунды.
Я пробовал другие приложения и библиотеки для просмотра PDF-файлов, и все они способны мгновенно загружать и отображать один и тот же документ.
Как ни странно, после преобразования этого файла в цветовое пространство RGB он мгновенно отображает страницы. Хотя это может быть связано с изменением файловой структуры, поскольку она также была линеаризована, а операторы, похоже, сжаты.
Я проанализировал и профилировал различия между визуализацией двух документов:
В исходном документе сборщик мусора работает долго.
В исходном документе журнал продолжает печатать: «W / System : Ресурсу не удалось вызвать конец. ".
В новом документе гораздо меньше графических операторов.
Интересно, может ли кто-нибудь знать причину этого и / или как это исправить.
РЕДАКТИРОВАТЬ:
Исходный документ:
Новый документ (преобразованный в цветовое пространство RGB):
Если посмотреть на время настенных часов, вызываемых функцией, в профилировщике, то особых узких мест нет. Возможно, PdfBox очень медленно обрабатывает графические операторы, что объясняет, почему новый документ загружается быстрее, поскольку в нем всего около 2 операторов на страницу, в отличие от многих десятков в оригинале.