pdf

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

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

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

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

классный

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

Котлин

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

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

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

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

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

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

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

Версия 1.0

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

22 октября 2025 г.

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

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

  • Включение пунктов смарт-меню при выборе содержимого PDF-файла.
  • Включение выбора гиперссылок и выбора ссылок GoTo в PDF-файле.
  • Представлен API меню выбора fromPdfView и PdfViewer Composable, позволяющий разработчикам добавлять пункты меню выбора.
  • Добавление API выравнивания страницы в PdfView и PdfViewer Composable, которое позволяет разработчикам выбирать выравнивание страницы, когда высота содержимого < высоты области просмотра.

Изменения API

  • contentDesc теперь допускает значение NULL и удалено значение по умолчанию. ( I86f8c , b/441973880 )
  • Вывести PdfSelectionMenuKeys для пунктов меню выбора ссылок ( Ic9b05 , b/447079082 )
  • Добавьте API PageAlignment в PdfView и PdfViewer в androidx-main
  • Измените API, связанный с углами, чтобы использовались градусы и включались единицы измерения в имена, четко укажите единицы измерения в утилитах преобразования углов и поддерживайте как градусы, так и радианы, измените API StockBrushes , чтобы оно принимало версию стандартной кисти в качестве параметра заводской функции и предоставило управление самоперекрытием для кистей подсветки, переименуйте MutableAffineTransform.populateFromTranslate в populateFromTranslation , удалите InProgressStrokesView.setRenderFactory/getRenderFactory . ( Id9eab , b/436656418 )
  • Добавить API PageAlignment в PdfView и PdfViewer ( I9c9a5 , b/438065228 )
  • API меню выбора отображения из PdfViewer Composable ( Id9b0f , b/407663999 )
  • Сделайте PdfView ViewGroup . Поддержка произвольных дочерних элементов отсутствует. ( Ib51d8 , b/410008792 )
  • Вывести HyperLinkSelection и GoToLinkSelection из PdfView ( I378c4 , b/441280002 )
  • Реорганизация PdfPageContent для поддержки универсальных вариантов выбора ( I28f16 , b/437845185 )
  • API меню выбора отображения из PdfView ( Idd547 , b/407663737 )
  • Переместить классы, связанные с выбором, в отдельный пакет ( I953cb , b/436157691 )
  • Введен экспериментальный onPdfViewCreated для доступа к PdfView в PdfViewerFragment . ( I86715 , b/422620454 )
  • Добавляет API FileDescriptor в PdfLoader ( I60b8d )

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

  • Улучшить моделирование ввода, чтобы штрихи точнее отражали ввод ( I93097 )

Внешний вклад

  • Предоставить PdfSelectionMenuKeys для пунктов меню выбора ссылок
  • API меню выбора для отображения из PdfViewer Composable
  • API меню выбора для отображения из PdfView

Версия 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