pdf

  
Uma biblioteca para adicionar recursos de visualização de PDF em apps.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
16 de julho de 2025 - - - 1.0.0-alpha10

Declarar dependências

Para adicionar uma dependência a pdf, adicione o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

Groovy

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

Kotlin

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

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Não há notas de versão para este artefato.

Versão 1.0

Versão 1.0.0-alpha10

16 de julho de 2025

Lançamento de androidx.pdf:pdf-*:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Novos recursos

  • Seleção aprimorada que permite aos usuários selecionar texto em várias páginas arrastando as alças de seleção além dos limites da página.
  • Agora, os aplicativos podem interceptar e personalizar o processamento de cliques em hiperlinks em documentos PDF.

Mudanças na API

  • Expõe um elemento combinável para apresentar conteúdo em PDF (I8e7ee).
  • Movendo PdfPoint e PdfRect para o pacote androidx.pdf.models (I26cf4)
  • Expõe um componente View para apresentar conteúdo em PDF (I9fe27)
  • Expõe a API para inicializar recursos de PDF com antecedência e reduzir a latência de inicialização a frio (a18fa89)
  • Expõe a API para substituir o processamento de cliques em hiperlinks no conteúdo PDF(6330a8b)
  • Expõe um novo artefato pdf-document-service e as APIs correspondentes: PdfLoader, PdfDocument e SandboxedPdfLoader. As interfaces podem ser usadas para implementar o componente de análise e processamento do documento PDF (Ide70d).
  • Expõe uma API para definir PdfDocument em PdfView para inicializar a renderização do documento (If8738)

Versão 1.0.0-alpha09

7 de maio de 2025

Lançamento de androidx.pdf:pdf-*:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Principais mudanças

  • A base de código passou por uma grande refatoração e agora está totalmente escrita em Kotlin, usando corrotinas e ViewModel. Isso inclui uma reimplementação do PdfViewerFragment. Esta versão não inclui novas APIs nem recursos.

Problemas conhecidos:

  • O rolador rápido e o indicador de página não têm efeitos de sombra.
  • Documentos PDF de uma única página nem sempre são centralizados e dimensionados para a largura da visualização.

Mudanças na API

  • Inclua a anotação @StyleRes na containerStyleResId. (I88d85).

Versão 1.0.0-alpha08

12 de março de 2025

Lançamento de androidx.pdf:pdf-document-service:1.0.0-alpha08, androidx.pdf:pdf-viewer:1.0.0-alpha08 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Correções de bugs

  • Foi resolvido o posicionamento inconsistente do menu de seleção entre diferentes dispositivos Android devido a diferenças de escalonamento. O posicionamento do menu de seleção agora é consistente em todos os dispositivos.
  • Alinhamos a posição do rolador rápido e do indicador de página na recriação de fragmentos em cenários como mudança de configuração etc.

Versão 1.0.0-alpha07

26 de fevereiro de 2025

Lançamento de androidx.pdf:pdf-document-service:1.0.0-alpha07, androidx.pdf:pdf-viewer:1.0.0-alpha07 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Novos recursos

  • O PdfViewerFragment agora oferece suporte a StylingOptions (um conjunto de IDs de recursos de estilo), permitindo a estilização personalizada via newInstance ou XML (FragmentContainerView). As subclasses podem usar o construtor protegido para uma funcionalidade semelhante.
  • No momento, o StylingOptions usa containerStyle, que oferece:
    • Suporte a elementos gráficos personalizados para o controle de rolagem rápida e o indicador de página.
    • Atributo marginEnd para posicionamento preciso da alça de rolagem rápida e do indicador de página.

Mudanças na API

  • Adição de atributos públicos de PdfView (I30fc5)
  • Adição de novas APIs StylingOptions para visualização de PDF. (Id2993)

Correções de bugs

  • Correção da discrepância de sincronização entre a alça de rolagem rápida e o estado de visibilidade do indicador de página.

Versão 1.0.0-alpha06

29 de janeiro de 2025

Lançamento de androidx.pdf:pdf-document-service:1.0.0-alpha06, androidx.pdf:pdf-viewer:1.0.0-alpha06 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Correções de bugs

  • Correção: falha causada por IllegalArgumentException ao desvincular um serviço não registrado (eb4e85).
  • Correção: falha IllegalArgumentException devido à diferença em mMaxPages e numPages. (75d763)

Versão 1.0.0-alpha05

11 de dezembro de 2024

Lançamento de androidx.pdf:pdf-document-service:1.0.0-alpha05, androidx.pdf:pdf-viewer:1.0.0-alpha05 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Correções de bugs

  • Agora, essa biblioteca usa anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para garantir o uso correto: -Xjspecify-annotations=strict (esse é o padrão a partir da versão 2.1.0 do compilador Kotlin). (I38301, b/326456246)
  • Correção do problema em que a página aberta anteriormente era exibida após a rotação no Android 13. (Ib03dd).
  • A caixa de ferramentas não desaparece mais ao girar a tela. (01148f)

Versão 1.0.0-alpha04

13 de novembro de 2024

Lançamento de androidx.pdf:pdf-viewer:1.0.0-alpha04 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações.

Compatibilidade expandida

  • A biblioteca PDFViewer agora é compatível com as versões S, T, U e V do Android. Essa compatibilidade aprimorada está vinculada à atualização da extensão do SDK 13.

Mudanças na API

  • Adicionada restrição mínima de SdkExtension a PdfViewerFragment. (I922af).
  • Exposição de novas APIs para a biblioteca do visualizador de PDF. (I0af57).

Correções de bugs

  • Correção de falha para o problema de encerramento do processo.
  • Correções na interface relacionadas à caixa de diálogo de senha.
  • Correções de acessibilidade para findInFileView e FastscrollView.

Desenvolvimento contínuo

  • Estamos trabalhando para incorporar o Jetpack Compose à biblioteca.

Versão 1.0.0-alpha03

18 de setembro de 2024

Lançamento de androidx.pdf:pdf-viewer:1.0.0-alpha03 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Correções de bugs

  • O problema de o teclado não aparecer quando a pesquisa é aberta pela primeira vez foi resolvido.
  • Correções na interface relacionadas à fonte da visualização "FindInFile".
  • Correções na interface para seleção de texto e alça de arrastar.

Problemas conhecidos

  • Imagens 3D em documentos PDF não são renderizadas no visualizador.
  • PdfViewerFragment tem alguns problemas de desempenho em documentos PDF muito grandes (> 250 MB)

Versão 1.0.0-alpha02

4 de setembro de 2024

Lançamento de androidx.pdf:pdf-viewer:1.0.0-alpha02 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Correções de bugs

  • O problema de imagem desfocada do PDF ao girar da orientação retrato para paisagem e o app entrar em modo inativo foi resolvido.
  • O menu "Encontrar no arquivo" agora mantém a contagem de resultados mesmo quando a configuração muda.
  • O ícone FloatingActionButton agora está disponível para PDFs de uma página.
  • Foram corrigidos problemas de sobreposição entre a barra "Encontrar no arquivo" e o FloatingActionButton.
  • Agora, as anotações de texto e destaque podem ser renderizadas no visualizador.
  • Fizemos melhorias de acessibilidade na barra "Encontrar no arquivo".
  • Foram implementadas correções na interface para rotação, incluindo a preservação da contagem de resultados, a correção do menu de seleção de texto que desaparecia e a resolução do problema de sobreposição do botão de ação flutuante.
  • O menu "Encontrar no arquivo" que ficava escondido atrás do teclado no modo paisagem foi corrigido.

Problemas conhecidos

  • Imagens 3D em documentos PDF não são renderizadas no visualizador.
  • PdfViewerFragment tem alguns problemas de desempenho em documentos PDF muito grandes (> 250 MB)

Versão 1.0.0-alpha01

7 de agosto de 2024

Lançamento de androidx.pdf:pdf-viewer:1.0.0-alpha01 e androidx.pdf:pdf-viewer-fragment:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Novos recursos

A versão Alfa inicial do PDFViewer inclui implementações de pré-lançamento que permitem cenários básicos de leitura de PDF. No momento, o PdfViewerFragment é compatível apenas com versões do Android V (SDK 35). A compatibilidade com versões mais antigas do Android será adicionada nas próximas versões.

  • Foi introduzido o PdfViewerFragment, que seu app pode usar para renderizar um documento PDF. O PdfViewerFragment simplifica a integração de um visualizador de PDF na sua atividade e permite que os usuários interajam das seguintes maneiras:
    • Zoom: faça o gesto de pinça para ajustar os níveis de zoom e ter uma experiência de leitura confortável. Toque duas vezes para aumentar/diminuir rapidamente o zoom até o estado padrão.
    • Navegação: role na tela no estado padrão/com zoom. O PdfViewerFragment oferece um controle deslizante rápido para rolar rapidamente entre as páginas.
    • Ações de texto: tocar e manter pressionado um texto o seleciona, permitindo que os usuários usem opções como "Copiar" e "Selecionar tudo" na página atual.
    • Documentos protegidos por senha: o PdfViewerFragment mostra uma caixa de diálogo para o usuário inserir a senha e abrir o documento.
    • Hiperlinks navegáveis: os usuários podem acessar URLs da Web ou favoritos tocando nos hiperlinks dentro do PDF.
    • Atalho para o modo de anotações: o modo de edição ainda não está disponível no PdfViewerFragment. Em vez disso, PdfViewerFragment mostra um FloatingActionButton que aciona uma intent android.intent.action.ANNOTATE implícita com o URI do documento.

Mudanças na API

  • Adicionamos a propriedade PdfViewerFragment.documentUri para definir um URI de arquivo ou conteúdo para o documento e iniciar o carregamento dele. PdfViewerFragment mostra um ícone de carregamento quando o URI é definido, indicando o processamento em segundo plano do documento.
  • Adição de PdfViewerFragment.isTextSearchActive para alternar a visibilidade do menu "Encontrar no arquivo". PdfViewerFragment processa todo o fluxo, permitindo a entrada, mostrando o número total de correspondências, ativando a navegação entre os resultados e saindo dela.
  • Adicionamos callbacks onDocumentLoadSuccess e onDocumentLoadError, que são invocados após a renderização bem-sucedida do documento ou após um erro ser gerado antes da renderização.

Problemas conhecidos

  • A barra "Encontrar no arquivo" se sobrepõe ao FloatingActionButton em alguns casos.
  • O ícone FloatingActionButton não fica visível para PDFs de uma página.
  • A contagem de resultados não é preservada na mudança de configuração no menu "Localizar no arquivo".
  • Ocorre oscilação ao fechar o menu "Encontrar no arquivo"
  • Imagens 3D em documentos PDF não são renderizadas no visualizador.
  • Os recursos de acessibilidade serão ativados nas seguintes versões.
  • A imagem do PDF fica desfocada ao girar da orientação retrato para paisagem.
  • Não há suporte para anotações de texto/destaque.
  • PdfViewerFragment tem alguns problemas de desempenho em documentos PDF muito grandes (> 250 MB)

Observação

  • Atualizar compileSdk para 35 5dc41be