>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Kotlin

Como Construir Seu Próprio Poderoso PDF em Kotlin Sem Enviar Dados para a Nuvem

Recentemente, precisei comprimir rapidamente um documento PDF pesado no meu smartphone. Abri o Google Play, digitei a busca e... desanimei. A maioria dos aplicativos está cheia de anúncios, exige assinatura, ou pior — envia seu arquivo para algum servidor de terceiros para processamento. Para documentos com dados pessoais ou relatórios de trabalho, isso simplesmente não é uma opção.

No GitHub, encontrei o projeto PDF Toolkit do desenvolvedor Karna14314. É um utilitário totalmente offline para Android, escrito em Kotlin e Jetpack Compose. Ele faz tudo o que as alternativas pagas fazem, mas segue um princípio de privacidade em primeiro lugar: sem internet, sem analytics e sem nuvem.

PDF Toolkit

O que essa faca suíça pode fazer

O autor empacotou praticamente todas as operações básicas que você pode precisar ao trabalhar com documentos no aplicativo. Se dividirmos os recursos por categoria, temos uma lista decente.

Primeiro, há manipulações clássicas de páginas. Você pode mesclar vários arquivos em um (Merge) ou, inversamente, dividir um documento em partes. Há um editor visual onde você pode arrastar páginas com o dedo para alterar a ordem, ou simplesmente excluir as que não precisa. Para arquivos pesados, há compressão sem perda de legibilidade.

Segundo, conversão. O aplicativo pode transformar imagens da sua galeria em PDF e vice-versa — extrair páginas do documento em formato JPG, PNG ou WebP. Há até uma função de digitalização integrada: você aponta a câmera, o aplicativo encontra as bordas da página automaticamente e cria uma digitalização limpa.

Terceiro, trabalho de conteúdo e segurança. Você pode adicionar marcas d'água, definir senhas em arquivos (ou removê-las se souber a antiga) e até assinar documentos diretamente na tela. OCR — reconhecimento de texto de imagens — merece uma menção especial.

Internals técnicos

Para desenvolvedores Android, o PDF Toolkit é interessante por sua arquitetura. O projeto é recente, então usa uma stack moderna:

  • UI: Totalmente em Jetpack Compose seguindo as convenções do Material Design 3.
  • Arquitetura: MVVM clássico combinado com Clean Architecture. O código é bem organizado, a lógica de processamento de PDF é separada da camada de UI.
  • Processamento de PDF: Usa PdfBox-Android. Esta é uma porta da conhecida biblioteca Apache que funciona de forma confiável nos bastidores do sistema operacional móvel.
  • OCR (Reconhecimento de texto): Aqui o autor usou uma solução interessante com build flavors.

Três variantes de build estão disponíveis no repositório:

  1. Play Store: Usa Google ML Kit para reconhecimento de texto. Isso torna o APK menor (cerca de 40 MB é baixado na primeira execução), mas adiciona uma dependência do serviço proprietário do Google.
  2. F-Droid / Opensource: Essas versões usam Tesseract (biblioteca tess-two). Este é um motor totalmente aberto que funciona 100% offline. Perfeito para quem quer máxima independência de fornecedores.

Coroutines e Flow são usados para tarefas assíncronas, e o armazenamento local de dados (como histórico de operações) depende de Room e DataStore.

Por que vale a pena estudar

Se você escreve em Kotlin, o projeto é um ótimo exemplo de como trabalhar com arquivos pesados e imagens no Android. No código, você pode encontrar implementações de CameraX para digitalização de documentos ou uso de AndroidX Ink para anotações e assinaturas.

O tratamento de imagens é implementado de forma interessante. O projeto usa várias bibliotecas populares de uma vez: Coil para carregamento, Glide para tarefas específicas e uCrop para cortar imagens antes de inseri-las no PDF.

Quem achará este projeto útil

Se você está procurando um aplicativo pronto para si mesmo, o PDF Toolkit é uma ferramenta honesta sem pegadinhas. Ele não pede acesso à internet (a permissão simplesmente não está no manifesto), o que significa que seus arquivos fisicamente não podem sair do seu dispositivo.

Para desenvolvedores, este é um template de aplicativo pronto com arquitetura adequada. Você pode fazer um fork do repositório e adicionar, por exemplo, exportação para outros formatos ou processamento específico de metadados.

O projeto está em desenvolvimento ativo, o autor está aberto a pull requests. A única ressalva: para compilar a partir do código-fonte, você precisará do Android Studio Hedgehog ou mais recente e do JDK 17.

Compilar o projeto é simples:

git clone https://github.com/Karna14314/Pdf_Tools.git
cd Pdf_Tools
# Если нужен полностью открытый вариант без Google-сервисов:
./gradlew assembleOpensourceRelease

No final, temos um projeto open source sólido que resolve um problema real de privacidade. Em um mundo onde um aplicativo atrás do outro tenta coletar dados sobre você, utilitários como este são um sopro de ar fresco.

Projetos relacionados