pdf

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

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

Чтобы добавить зависимость от pdf, необходимо добавить репозиторий Google Maven в ваш проект. Для получения дополнительной информации ознакомьтесь с информацией в репозитории Google Maven .

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

классный

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

Котлин

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

Для получения дополнительной информации о зависимостях см. раздел «Добавление зависимостей сборки» .

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

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

Создать новую задачу

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

Для этого артефакта отсутствуют примечания к выпуску.

Версия 1.0

Версия 1.0.0-alpha13

11 февраля 2026 г.

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

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

  • Представлен EditablePdfViewerFragment , который расширяет стандартный PdfViewerFragment и предоставляет возможности редактирования PDF-файлов, включая добавление аннотаций и заполнение форм.
  • Аннотации: Использует библиотеку androidx.ink для обеспечения всесторонней поддержки аннотирования PDF-файлов. Специальная панель инструментов, активируемая плавающей кнопкой действия редактирования FloatingActionButton ), предоставляет доступ к специализированным инструментам, включая:
    • Перо: Позволяет писать и рисовать от руки непосредственно на документе. Пользователи могут настраивать толщину линии пера, выбирая нужный параметр, и использовать широкую цветовую палитру.
    • Маркер текста: Поддерживает как произвольное выделение текста, так и выделение текста с привязкой к нему, доступен в нескольких цветах.
    • Ластик: Точно удаляет определенные аннотации.
    • Отмена и повтор: Предоставляет встроенные возможности для беспрепятственной отмены или повтора последних изменений.
  • Заполнение форм: Поддержка щелчков мышью по полям формы и их изменения, таким как текстовые поля, выпадающие списки, флажки и переключатели.
    • Компонент EditablePdfViewerFragment поддерживает заполнение форм непосредственно в коде, обеспечивая удобство использования. Эта функция управляется через API isFormFillingEnabled в PdfView .
    • EditablePdfDocument : Новый интерфейс, расширяющий PdfDocument , для управления и применения изменений к данным форм.
    • Компонент PdfViewer поддерживает взаимодействие с полями форм, которое можно контролировать с помощью параметра isFormFillingEnabled .
  • Сохранение изменений: PdfWriteHandle позволяет сохранять отредактированное содержимое в указанный файл.
  • Выбор изображений: Добавлена ​​поддержка выбора изображений при длительном нажатии в PDF-документах. Эта функция включается с помощью свойства isImageSelectionEnabled как в PdfView , так и в составном компоненте PdfViewer . Полученные данные передаются через модель ImageSelection в OnSelectionChangedListener .
  • Двухстраничный макет: добавлен режим параллельного отображения для устройств с большими экранами, настраиваемый с помощью свойства pagesPerRow в PdfView и компонента PdfViewer .

Изменения в API

  • Внедрение API для выбора изображений в библиотеку Jetpack PDF ( Iee0b9 , b/470897750 )
  • Сделать API уровня обработки заполнения форм общедоступными. ( Iec39c , b/474260451 )
  • Добавить параметр renderParams в API openDocument в SandboxedPdfLoader ( If9344 , b/438269273 )
  • Добавить API для заполнения форм на уровне представления ( I829c5 , b/449869703 )
  • Добавлена ​​аннотация @MainThread к методам обратного вызова OnFirstContentLoadListener и OnSelectionChangedListener ( I4cf10 , b/466965940 )
  • Вызвано исключение ApplyInProgressException в конструкторе, препятствующее внешнему созданию экземпляра ( I5cc66 , b/465414484 )
  • Добавлена ​​аннотация @MainThread к методам обратного вызова слушателей в PdfView ( Ie7201 , b/429407597 )
  • Добавление API для нативных возможностей редактирования через EditablePdfViewerFragment . ( Ifae6c , b/462049364 )
  • Добавить API FirstContentLoad в PdfView и PdfViewer ( Icf63d , b/461666545 )
  • [2Page] Добавление API для двухстраничной компоновки в библиотеку PdfViewer ( I8d7f1 , b/452517650 )

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

  • Исправлена ​​ошибка, возникающая из-за того, что страница уже закрыта до загрузки растрового изображения ( b/475255729 ).

Версия 1.0.0-alpha12

3 декабря 2025 г.

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

Изменения в API

  • Удалите функцию textAsString из TextSelection в androidx-main.
  • Переименовать clearSelection в clearCurrentSelection ( I3a318 , b/429407597 )
  • Удалить функцию textAsString из TextSelection ( I1305d , b/429407798 )

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

  • Исправлена ​​ошибка, из-за которой ползунок быстрой прокрутки в PdfView по умолчанию не отображался. ( I7fb0e )
  • Исправлена ​​ошибка, приводящая к сбою в TextSelectionMenuProvider при выделении текста без значения. ( I855df )

Версия 1.0.0-alpha11

22 октября 2025 г.

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

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

  • Включение интеллектуальных пунктов меню при выделении содержимого PDF-файла.
  • Включение выделения гиперссылок и перехода по ссылкам в 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-alpha10

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-alpha09

7 мая 2025 г.

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

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

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

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

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

Изменения в API

  • Добавьте аннотацию ` @StyleRes к ` containerStyleResId . ( I88d85 )

Версия 1.0.0-alpha08

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-alpha07

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-alpha06

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-alpha05

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-alpha04

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-файлов. ( I0af57 )

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

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

Текущее развитие

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

Версия 1.0.0-alpha03

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

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

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

  • Исправлена ​​ошибка, из-за которой клавиатура не отображалась при первом открытии поиска.
  • Исправлены ошибки в пользовательском интерфейсе, связанные со шрифтом в режиме поиска файлов (FindInFile).
  • Исправлены ошибки в пользовательском интерфейсе, касающиеся выделения текста и маркера перетаскивания.

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

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

Версия 1.0.0-alpha02

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

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

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

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

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

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

Версия 1.0.0-alpha01

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 файла или содержимого документа и запуска загрузки документа. PdfViewerFragment отображает индикатор загрузки, когда задан URI, указывая на фоновую обработку документа.
  • Добавлена PdfViewerFragment.isTextSearchActive для переключения видимости поиска в меню «Файл». PdfViewerFragment обрабатывает весь процесс — ввод данных, отображение общего количества совпадений, навигацию между результатами и выход из него.
  • Добавлены коллбэки onDocumentLoadSuccess и onDocumentLoadError , которые вызываются после успешной отрисовки документа или после возникновения ошибки до отрисовки.

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

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

Примечание

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