Просмотрщик PDF-файлов для Android, Просмотрщик PDF-файлов для Android

Библиотека просмотра PDF-файлов Jetpack, поддерживаемая API-интерфейсами фреймворка, предлагает готовое, производительное решение для приложений, связанных с PDF-документами, на Android.

Библиотека средства просмотра PDF-файлов ( androidx.pdf ) предоставляет встраиваемый пользовательский интерфейс средства просмотра PDF-файлов, который позволяет пользователям выполнять следующие действия:

  • Открывать и просматривать PDF-документы
  • Поиск и выбор контента
  • Масштабирование и прокрутка
  • Сохранение аннотаций к документу
  • Взаимодействуйте с PDF-файлами с помощью стилуса

Вы можете создать полнофункциональный PDF-файл, интегрировав API библиотеки Jetpack или напрямую используя API фреймворка.

PDF-библиотека Jetpack

Библиотека Jetpack PDF предоставляет класс PdfViewerFragment , который отображает PDF-документы, включая PDF-файлы с разбивкой на страницы. Каждая страница отображается в отдельном представлении. PdfViewerFragment отображает плавающую кнопку действия для поддержки аннотаций и обычно включает в себя кнопку или другой элемент управления пользовательского интерфейса, открывающий меню поиска.

Чтобы узнать, как реализовать PdfViewerFragment , см. раздел Реализация средства просмотра PDF .

API-интерфейсы фреймворка

Библиотека Jetpack использует API фреймворка для анализа и загрузки PDF-документов. PdfRenderer предоставляет базовые API фреймворка для рендеринга PDF.

До Android V (API уровня 35) классы PdfRenderer и PdfRenderer.Page предоставляли API для работы с PDF-файлами. В Android V классы PdfRenderer и PdfRenderer.Page были обновлены и дополнены расширенными возможностями работы с PDF-файлами.

PdfRenderer

API до Android V

  • getPageCount() — Получает количество страниц в документе.
  • openPage(index: Int) — открывает страницу для рендеринга.
  • shouldScaleForPrinting() — определяет, нужно ли масштабировать документ для печати. ​​Учитывайте эту информацию, если документ готовится к печати, а целевой размер носителя отличается от размера страницы.

API, добавленные в Android V

  • PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams) — создаёт новый экземпляр. Поддерживает загрузку PDF-файлов, защищённых паролем.
  • getDocumentLinearizedType() — возвращает линеаризованный тип документа для PDF-файлов размером менее 1 КБ.
  • getPdfFormType() — Возвращает тип формы загруженного PDF-файла.
  • write(destination: ParcelFileDescriptor, removePasswordProtection: Boolean) — сохраняет состояние текущего загруженного документа в доступном для записи файловом дескрипторе, переданном в качестве аргумента.

PdfRenderer.Page

Класс PdfRenderer.Page представляет страницу PDF-документа для рендеринга.

API до Android V

  • RENDER_MODE_FOR_DISPLAY — Режим рендеринга содержимого для отображения на экране.
  • RENDER_MODE_FOR_PRINT — Режим визуализации содержимого для печати.
  • getIndex() — Получает индекс страницы.
  • getWidth() — Получает ширину страницы в пунктах (1/72 дюйма).
  • getHeight() — Получает высоту страницы в пунктах (1/72 дюйма).
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int) — Отображает страницу в растровое изображение.

API, добавленные в Android V

  • applyEdit(editRecord: FormEditRecord) — применяет FormEditRecord к PDF-файлу.
  • getFormWidgetInfos() — Возвращает информацию обо всех виджетах форм на странице.
  • getFormWidgetInfos(types: IntArray) — Возвращает информацию обо всех виджетах форм указанных типов на странице.
  • getFormWidgetInfoAtIndex(widgetIndex: Int) — возвращает информацию о виджете, идентифицированном аргументом widgetIndex .
  • fun getFormWidgetInfoAtPosition(x: Int, y: Int) — Возвращает информацию о виджете в заданной точке.
  • getGotoLinks() — Получает закладки и ссылки перехода, присутствующие на странице PDF-документа.
  • getImageContents() — Возвращает список PdfPageImageContent , найденных на странице.
  • getLinkContents() — Получает границы и URL-адреса всех ссылок на странице.
  • getTextContents() — Возвращает список PdfPageTextContent на странице.
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams) — Отображает страницу в растровое изображение.
  • searchText(query: String) — ищет на странице заданную строку и возвращает границы всех совпадений.
  • selectContent(start: SelectionBoundary, stop: SelectionBoundary) — возвращает PageSelection , представляющий содержимое между двумя границами.

использование API

  • API PdfRenderer#write() записывает версию загруженного PDF-файла в ParcelFileDescriptor . Примеры использования:

    • Сохранение копии PDF-документа после снятия защиты паролем
    • Сохранение правок (аннотаций, заполнения форм и т. д.)
  • API PdfRenderer.Page#render() визуализирует страницу или её часть в растровое изображение. В случае масштабирования API также можно использовать для визуализации части страницы в растровое изображение заданного размера.

  • API-функции PdfRenderer.Page getImageContents() , getLinkContents() и getTextContents() возвращают содержимое страницы. Это содержимое можно использовать для поддержки доступности и объявлений TalkBack, а также для функций на базе искусственного интеллекта, таких как создание сводки страницы.

  • API PdfRenderer.Page#selectContent выбирает контент, доступный на странице. Выбранный контент можно использовать для следующих действий:

    • Позвоните, если номер телефона
    • Карты, если выбран адрес
    • Копировать
    • Делиться
    • Комментарии

Совместимость

Класс PdfRendererPreV предоставляет API Android V для Android R–U (уровни API 30–34).

Дополнительные ресурсы

Чтобы узнать, как добавить средство просмотра PDF-файлов в свое приложение, ознакомьтесь с разделом Реализация средства просмотра PDF-файлов .

,

Библиотека просмотра PDF-файлов Jetpack, поддерживаемая API-интерфейсами фреймворка, предлагает готовое, производительное решение для приложений, связанных с PDF-документами, на Android.

Библиотека средства просмотра PDF-файлов ( androidx.pdf ) предоставляет встраиваемый пользовательский интерфейс средства просмотра PDF-файлов, который позволяет пользователям выполнять следующие действия:

  • Открывать и просматривать PDF-документы
  • Поиск и выбор контента
  • Масштабирование и прокрутка
  • Сохранение аннотаций к документу
  • Взаимодействуйте с PDF-файлами с помощью стилуса

Вы можете создать полнофункциональный PDF-файл, интегрировав API библиотеки Jetpack или напрямую используя API фреймворка.

PDF-библиотека Jetpack

Библиотека Jetpack PDF предоставляет класс PdfViewerFragment , который отображает PDF-документы, включая PDF-файлы с разбивкой на страницы. Каждая страница отображается в отдельном представлении. PdfViewerFragment отображает плавающую кнопку действия для поддержки аннотаций и обычно включает в себя кнопку или другой элемент управления пользовательского интерфейса, открывающий меню поиска.

Чтобы узнать, как реализовать PdfViewerFragment , см. раздел Реализация средства просмотра PDF .

API-интерфейсы фреймворка

Библиотека Jetpack использует API фреймворка для анализа и загрузки PDF-документов. PdfRenderer предоставляет базовые API фреймворка для рендеринга PDF.

До Android V (API уровня 35) классы PdfRenderer и PdfRenderer.Page предоставляли API для работы с PDF-файлами. В Android V классы PdfRenderer и PdfRenderer.Page были обновлены и дополнены расширенными возможностями работы с PDF-файлами.

PdfRenderer

API до Android V

  • getPageCount() — Получает количество страниц в документе.
  • openPage(index: Int) — открывает страницу для рендеринга.
  • shouldScaleForPrinting() — определяет, нужно ли масштабировать документ для печати. ​​Учитывайте эту информацию, если документ готовится к печати, а целевой размер носителя отличается от размера страницы.

API, добавленные в Android V

  • PdfRenderer(fileDescriptor: ParcelFileDescriptor, params: LoadParams) — создаёт новый экземпляр. Поддерживает загрузку PDF-файлов, защищённых паролем.
  • getDocumentLinearizedType() — возвращает линеаризованный тип документа для PDF-файлов размером менее 1 КБ.
  • getPdfFormType() — Возвращает тип формы загруженного PDF-файла.
  • write(destination: ParcelFileDescriptor, removePasswordProtection: Boolean) — сохраняет состояние текущего загруженного документа в доступном для записи файловом дескрипторе, переданном в качестве аргумента.

PdfRenderer.Page

Класс PdfRenderer.Page представляет страницу PDF-документа для рендеринга.

API до Android V

  • RENDER_MODE_FOR_DISPLAY — Режим рендеринга содержимого для отображения на экране.
  • RENDER_MODE_FOR_PRINT — Режим визуализации содержимого для печати.
  • getIndex() — Получает индекс страницы.
  • getWidth() — Получает ширину страницы в пунктах (1/72 дюйма).
  • getHeight() — Получает высоту страницы в пунктах (1/72 дюйма).
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, renderMode: Int) — Отображает страницу в растровое изображение.

API, добавленные в Android V

  • applyEdit(editRecord: FormEditRecord) — применяет FormEditRecord к PDF-файлу.
  • getFormWidgetInfos() — Возвращает информацию обо всех виджетах форм на странице.
  • getFormWidgetInfos(types: IntArray) — Возвращает информацию обо всех виджетах форм указанных типов на странице.
  • getFormWidgetInfoAtIndex(widgetIndex: Int) — возвращает информацию о виджете, идентифицированном аргументом widgetIndex .
  • fun getFormWidgetInfoAtPosition(x: Int, y: Int) — Возвращает информацию о виджете в заданной точке.
  • getGotoLinks() — Получает закладки и ссылки перехода, присутствующие на странице PDF-документа.
  • getImageContents() — Возвращает список PdfPageImageContent , найденных на странице.
  • getLinkContents() — Получает границы и URL-адреса всех ссылок на странице.
  • getTextContents() — Возвращает список PdfPageTextContent на странице.
  • render(destination: Bitmap, destClip: Rect?, transform: Matrix?, params: RenderParams) — Отображает страницу в растровое изображение.
  • searchText(query: String) — ищет на странице заданную строку и возвращает границы всех совпадений.
  • selectContent(start: SelectionBoundary, stop: SelectionBoundary) — возвращает PageSelection , представляющий содержимое между двумя границами.

использование API

  • API PdfRenderer#write() записывает версию загруженного PDF-файла в ParcelFileDescriptor . Примеры использования:

    • Сохранение копии PDF-документа после снятия защиты паролем
    • Сохранение правок (аннотаций, заполнения форм и т. д.)
  • API PdfRenderer.Page#render() визуализирует страницу или её часть в растровое изображение. В случае масштабирования API также можно использовать для визуализации части страницы в растровое изображение заданного размера.

  • API-функции PdfRenderer.Page getImageContents() , getLinkContents() и getTextContents() возвращают содержимое страницы. Это содержимое можно использовать для поддержки доступности и объявлений TalkBack, а также для функций на базе искусственного интеллекта, таких как создание сводки страницы.

  • API PdfRenderer.Page#selectContent выбирает контент, доступный на странице. Выбранный контент можно использовать для следующих действий:

    • Позвоните, если номер телефона
    • Карты, если выбран адрес
    • Копировать
    • Делиться
    • Комментарии

Совместимость

Класс PdfRendererPreV предоставляет API Android V для Android R–U (уровни API 30–34).

Дополнительные ресурсы

Чтобы узнать, как добавить средство просмотра PDF-файлов в свое приложение, ознакомьтесь с разделом Реализация средства просмотра PDF-файлов .