pdf

Библиотека для добавления возможностей просмотра PDF-файлов внутри приложений.
Последнее обновление Стабильный релиз Кандидат на релиз Бета-версия Альфа-релиз
16 июля 2025 г. - - - 1.0.0-альфа10

Объявление зависимостей

Чтобы добавить зависимость от PDF, необходимо добавить репозиторий Google Maven в свой проект. Подробнее см. в репозитории Google Maven .

Добавьте зависимости для необходимых артефактов в файл build.gradle вашего приложения или модуля:

классный

dependencies {
    implementation "androidx.pdf:pdf-viewer-fragment:1.0.0-alpha10"
}

Котлин

dependencies {
    implementation("androidx.pdf:pdf-viewer-fragment:1.0.0-alpha10")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

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

Создать новый выпуск

Более подробную информацию см. в документации по системе отслеживания проблем .

Заметок о выпуске для этого артефакта нет.

Версия 1.0

Версия 1.0.0-альфа10

16 июля 2025 г.

Выпущен androidx.pdf:pdf-*:1.0.0-alpha10 . Версия 1.0.0-alpha10 содержит следующие коммиты .

Новые функции

  • Расширенные возможности выделения, позволяющие пользователям выделять текст на нескольких страницах путем перетаскивания маркеров выделения за границы страниц.
  • Теперь приложения могут перехватывать и настраивать обработку щелчков по гиперссылкам в документах PDF.

Изменения API

  • Предоставляет Composable для представления содержимого PDF ( I8e7ee )
  • Перемещение PdfPoint и PdfRect в пакет androidx.pdf.models ( I26cf4 )
  • Предоставляет компонент View для представления содержимого PDF ( I9fe27 )
  • Предоставляет API для заблаговременной инициализации ресурсов PDF и снижения задержки холодного запуска ( a18fa89 )
  • Предоставляет API для переопределения обработки щелчков по гиперссылкам в содержимом PDF-файла ( 6330a8b )
  • Открывает новый артефакт pdf-document-service и соответствующие API — PdfLoader , PdfDocument и SandboxedPdfLoader . Эти интерфейсы могут быть использованы для реализации компонента анализа и обработки PDF-документа ( Ide70d ).
  • Предоставляет API для установки PdfDocument в PdfView для инициализации рендеринга документа ( If8738 )

Версия 1.0.0-альфа09

7 мая 2025 г.

Выпущен androidx.pdf:pdf-*:1.0.0-alpha09 . Версия 1.0.0-alpha09 содержит следующие коммиты .

Основные изменения

  • Кодовая база подверглась серьёзному рефакторингу и теперь полностью написана на Kotlin с использованием корутин и ViewModel . Это включает в себя переработку PdfViewerFragment . Этот выпуск не содержит новых API или функций.

Известные проблемы:

  • У быстрой прокрутки и индикатора страниц отсутствуют эффекты тени.
  • Одностраничные PDF-документы не всегда могут быть отцентрированы и масштабированы по ширине представления.

Изменения API

  • Добавьте аннотацию containerStyleResId с помощью @StyleRes . ( I88d85 )

Версия 1.0.0-альфа08

12 марта 2025 г.

Выпущены androidx.pdf:pdf-document-service:1.0.0-alpha08 , androidx.pdf:pdf-viewer:1.0.0-alpha08 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08 . Версия 1.0.0-alpha08 содержит эти коммиты .

Исправления ошибок

  • Исправлена проблема несоответствия расположения меню выбора на разных устройствах Android, возникавшая из-за разницы в масштабировании. Теперь расположение меню выбора одинаково на всех устройствах.
  • Выровнено положение быстрой прокрутки и индикатора страницы при воссоздании фрагмента в таких сценариях, как изменение конфигурации и т. д.

Версия 1.0.0-альфа07

26 февраля 2025 г.

Выпущены androidx.pdf:pdf-document-service:1.0.0-alpha07 , androidx.pdf:pdf-viewer:1.0.0-alpha07 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07 . Версия 1.0.0-alpha07 содержит эти коммиты .

Новые функции

  • PdfViewerFragment теперь поддерживает StylingOptions (набор идентификаторов ресурсов стилей), что позволяет настраивать стили через newInstance или XML ( FragmentContainerView ). Подклассы могут использовать защищённый конструктор для аналогичной функциональности.
  • StylingOptions в настоящее время принимает containerStyle , который обеспечивает:
    • Настраиваемая поддержка для быстрой прокрутки и индикатора страниц.
    • Атрибут marginEnd для точного позиционирования маркера быстрой прокрутки и индикатора страницы.

Изменения API

  • Добавлены публичные атрибуты из PdfView ( I30fc5 )
  • Добавлены новые API StylingOptions для просмотра PDF-файлов. ( Id2993 )

Исправления ошибок

  • Исправлено несоответствие синхронизации между ручкой быстрой прокрутки и состоянием видимости индикатора страницы.

Версия 1.0.0-альфа06

29 января 2025 г.

Выпущены androidx.pdf:pdf-document-service:1.0.0-alpha06 , androidx.pdf:pdf-viewer:1.0.0-alpha06 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06 . Версия 1.0.0-alpha06 содержит эти коммиты .

Исправления ошибок

  • Исправление: сбой, вызванный исключением IllegalArgumentException при отвязке незарегистрированной службы ( eb4e85 )
  • Исправление: сбой IllegalArgumentException из-за разницы в mMaxPages и numPages . ( 75d763 )

Версия 1.0.0-альфа05

11 декабря 2024 г.

Выпущены androidx.pdf:pdf-document-service:1.0.0-alpha05 , androidx.pdf:pdf-viewer:1.0.0-alpha05 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05 . Версия 1.0.0-alpha05 содержит эти коммиты .

Исправления ошибок

  • Эта библиотека теперь использует аннотации JSpecify, определяющие значение null , которые являются типовыми. Разработчикам Kotlin следует использовать следующий аргумент компилятора для обеспечения корректного использования: -Xjspecify-annotations=strict (это значение по умолчанию, начиная с версии 2.1.0 компилятора Kotlin). ( I38301 , b/326456246 )
  • Исправлено отображение ранее открытой страницы после поворота в Android 13. ( Ib03dd )
  • Исправлено исчезновение панели инструментов при повороте. ( 01148f )

Версия 1.0.0-альфа04

13 ноября 2024 г.

Выпущены androidx.pdf:pdf-viewer:1.0.0-alpha04 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04 . Версия 1.0.0-alpha04 содержит эти коммиты .

Расширенная совместимость

  • Библиотека PDFViewer теперь поддерживает версии Android S, T, U и V. Эта улучшенная совместимость связана с обновлением расширения SDK 13.

Изменения API

  • Добавлено минимальное ограничение SdkExtension для PdfViewerFragment . ( I922af )
  • Представлен новый API для библиотеки PDF Viewer. ( I0af57 )

Исправления ошибок

  • Исправление сбоя при проблеме завершения процесса.
  • Исправления пользовательского интерфейса, связанные с диалоговым окном ввода пароля.
  • Исправления доступности для findInFileView и FastscrollView .

Продолжающееся развитие

  • Мы активно работаем над включением Jetpack Compose в библиотеку.

Версия 1.0.0-альфа03

18 сентября 2024 г.

Выпущены androidx.pdf:pdf-viewer:1.0.0-alpha03 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03 . Версия 1.0.0-alpha03 содержит эти коммиты .

Исправления ошибок

  • Решена проблема, из-за которой клавиатура не появлялась при первом открытии поиска.
  • Исправления пользовательского интерфейса, связанные со шрифтом представления FindInFile.
  • Исправления пользовательского интерфейса для выделения текста и перетаскивания маркера.

Известные проблемы

  • 3D-изображения в PDF-документах не отображаются в средстве просмотра.
  • У PdfViewerFragment наблюдаются некоторые проблемы с производительностью при работе с очень большими PDF-документами (> 250 МБ)

Версия 1.0.0-альфа02

4 сентября 2024 г.

Выпущены androidx.pdf:pdf-viewer:1.0.0-alpha02 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02 . Версия 1.0.0-alpha02 содержит эти коммиты .

Исправления ошибок

  • Устранена проблема размытости изображения PDF при повороте из портретного в альбомный режим и переходе приложения в спящий режим.
  • Меню «Найти в файле» теперь сохраняет количество результатов даже при изменении конфигурации.
  • Значок FloatingActionButton теперь доступен для одностраничных PDF-файлов.
  • Исправлены проблемы с перекрытием между панелью «Найти в файле» и FloatingActionButton .
  • Текстовые и выделенные аннотации теперь можно отображать в средстве просмотра.
  • Улучшены возможности доступа к панели «Найти в файлах».
  • Внесены исправления в пользовательский интерфейс для ротации, включая сохранение счетчика поиска, решение проблемы исчезающего меню выбора текста и решение проблемы перекрытия FAB.
  • Исправлено скрытие меню «Найти в файле» за клавиатурой в ландшафтном режиме.

Известные проблемы

  • 3D-изображения в PDF-документах не отображаются в средстве просмотра.
  • У PdfViewerFragment наблюдаются некоторые проблемы с производительностью при работе с очень большими PDF-документами (> 250 МБ)

Версия 1.0.0-альфа01

7 августа 2024 г.

Выпущены androidx.pdf:pdf-viewer:1.0.0-alpha01 и androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01 . Версия 1.0.0-alpha01 содержит эти коммиты .

Новые функции

Первая альфа-версия PDFViewer включает предварительные версии, которые поддерживают основные сценарии чтения PDF-файлов. Обратите внимание, что PdfViewerFragment в настоящее время поддерживается только в версиях Android V (SDK 35). Поддержка более старых версий Android будет добавлена в следующих версиях.

  • Представлен PdfViewerFragment , который ваше приложение может использовать для отображения PDF-документа. PdfViewerFragment упрощает интеграцию средства просмотра PDF-файлов в вашу Activity и позволяет пользователям взаимодействовать следующими способами:
    • Масштабирование: сведите или разведите пальцы, чтобы отрегулировать уровень масштабирования для комфортного чтения, а двойное нажатие позволяет быстро увеличить/уменьшить масштаб до состояния по умолчанию.
    • Навигация: Прокрутка в стандартном/масштабированном состоянии. PdfViewerFragment предоставляет быстрый инструмент для быстрой прокрутки между страницами.
    • Действия с текстом: Длительное нажатие на текст выделяет его, позволяя пользователям использовать такие функции, как «Копировать» и «Выбрать все» на текущей странице.
    • Документы, защищенные паролем: PdfViewerFragment предоставляет пользователю диалоговое окно для ввода пароля и открытия документа.
    • Навигационные гиперссылки: пользователи могут переходить к веб-адресам или закладкам, нажимая на гиперссылки в PDF-файле.
    • Ярлык для режима аннотаций: Режим редактирования пока не поддерживается в PdfViewerFragment . Вместо этого PdfViewerFragment отображает FloatingActionButton , который запускает неявное намерение android.intent.action.ANNOTATE с URI документа.

Изменения API

  • Добавлено свойство PdfViewerFragment.documentUri для установки URI файла или содержимого документа и запуска загрузки документа. При установке URI PdfViewerFragment отображает индикатор загрузки, указывая на фоновую обработку документа.
  • Добавлен PdfViewerFragment.isTextSearchActive для включения/выключения видимости меню поиска в файле. PdfViewerFragment управляет всем процессом: позволяет вводить данные, отображает общее количество совпадений, обеспечивает навигацию между результатами и выход из него.
  • Добавлены обратные вызовы onDocumentLoadSuccess и onDocumentLoadError , которые вызываются после успешного рендеринга документа или после возникновения ошибки перед рендерингом.

Известные проблемы

  • В некоторых случаях панель «Найти в файле» перекрывается FloatingActionButton .
  • Значок FloatingActionButton не отображается для одностраничных PDF-файлов.
  • Количество результатов не сохраняется при изменении конфигурации в меню «Найти в файле».
  • При закрытии меню «Найти в файле» наблюдается мерцание.
  • 3D-изображения в PDF-документах не отображаются в средстве просмотра.
  • Функции доступности будут включены в следующих выпусках.
  • Изображение PDF становится размытым при повороте из книжной в альбомную ориентацию.
  • Нет поддержки текстовых/выделенных аннотаций.
  • У PdfViewerFragment наблюдаются некоторые проблемы с производительностью при работе с очень большими PDF-документами (> 250 МБ)

Примечание

  • Обновление compileSdk до версии 35 5dc41be