>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Kotlin

So baust du deine eigene PDF-Zentrale in Kotlin, ohne Daten in die Cloud zu senden

Neulich musste ich schnell ein großes PDF-Dokument auf meinem Smartphone komprimieren. Ich öffnete Google Play, gab den Suchbegriff ein und... war abgeschreckt. Die meisten Apps sind entweder mit Werbung überladen, erfordern ein Abonnement oder – am schlimmsten – senden deine Datei zur Verarbeitung an einen Drittanbieter-Server. Für Dokumente mit persönlichen Daten oder Arbeitsberichten ist das einfach keine Option.

Auf GitHub stieß ich auf das PDF Toolkit-Projekt des Entwicklers Karna14314. Es ist ein vollständig offline nutzbares Utility für Android, geschrieben in Kotlin und Jetpack Compose. Es bietet alles, was kostenpflichtige Alternativen können, folgt aber einem Datenschutz-zuerst-Prinzip: kein Internet, keine Analytik und keine Cloud.

PDF Toolkit

Was dieses Schweizer Taschenmesser alles kann

Der Autor hat praktisch alle grundlegenden Operationen, die man beim Arbeiten mit Dokumenten brauchen könnte, in die App gepackt. Wenn wir die Funktionen nach Kategorien aufschlüsseln, erhalten wir eine beachtliche Liste.

Zunächst gibt es klassische Seitenmanipulationen. Du kannst mehrere Dateien zu einer zusammenführen (Merge) oder umgekehrt ein Dokument in Teile aufspalten. Es gibt einen visuellen Editor, in dem du Seiten mit dem Finger verschieben kannst, um ihre Reihenfolge zu ändern, oder einfach die nicht benötigten Seiten löschst. Für große Dateien gibt es eine verlustfreie Komprimierung.

Dann die Konvertierung. Die App kann Bilder aus deiner Galerie in PDF umwandeln und umgekehrt – Dokumentseiten im JPG-, PNG- oder WebP-Format extrahieren. Es gibt sogar eine eingebaute Scan-Funktion: Du richtest die Kamera aus, die App erkennt selbstständig die Seitenränder und erstellt eine saubere gescannte Kopie.

Drittens Inhaltsarbeit und Sicherheit. Du kannst Wasserzeichen hinzufügen, Dateien mit Passwörtern schützen (oder sie entfernen, wenn du das alte kennst) und sogar Dokumente direkt auf dem Bildschirm signieren. OCR – die Texterkennung aus Bildern – verdient eine besondere Erwähnung.

Technische Details

Für Android-Entwickler ist PDF Toolkit aufgrund seiner Architektur interessant. Das Projekt ist frisch, daher wird ein moderner Tech-Stack verwendet:

  • UI: Vollständig in Jetpack Compose nach Material Design 3-Konventionen.
  • Architektur: Klassisches MVVM kombiniert mit Clean Architecture. Der Code ist sauber organisiert, die PDF-Verarbeitungslogik ist von der UI-Schicht getrennt.
  • PDF-Verarbeitung: Verwendet PdfBox-Android. Dies ist ein Port der bekannten Apache-Bibliothek, die zuverlässig im Hintergrund des mobilen Betriebssystems funktioniert.
  • OCR (Texterkennung): Hier hat der Autor eine interessante Lösung mit Build-Varianten verwendet.

Drei Build-Varianten sind im Repository verfügbar:

  1. Play Store: Verwendet Google ML Kit für die Texterkennung. Dadurch wird das APK kleiner (ca. 40 MB werden beim ersten Start heruntergeladen), fügt aber eine Abhängigkeit von Googles proprietärem Dienst hinzu.
  2. F-Droid / Open Source: Diese Versionen verwenden Tesseract (tess-two-Bibliothek). Dies ist eine vollständig offene Engine, die zu 100 % offline funktioniert. Perfekt für alle, die maximale Herstellerunabhängigkeit wollen.

Coroutines und Flow werden für asynchrone Aufgaben verwendet, und die lokale Datenspeicherung (wie der Operationsverlauf) basiert auf Room und DataStore.

Warum es sich lohnt, sich damit zu beschäftigen

Wenn du in Kotlin entwickelst, ist das Projekt ein großartiges Beispiel dafür, wie man mit großen Dateien und Bildern in Android arbeitet. Im Code findest du Implementierungen von CameraX für Dokument-Scanning oder die Verwendung von AndroidX Ink für Annotationen und Signaturen.

Die Bildverarbeitung ist interessant gelöst. Das Projekt verwendet gleichzeitig mehrere beliebte Bibliotheken: Coil für das Laden, Glide für spezifische Aufgaben und uCrop für das Zuschneiden von Bildern, bevor sie in PDF eingefügt werden.

Für wen dieses Projekt nützlich ist

Wenn du eine fertige App für dich selbst suchst, ist PDF Toolkit ein ehrliches Tool ohne versteckte Haken. Es fragt nicht nach Internetzugang (die Berechtigung ist einfach nicht im Manifest), was bedeutet, dass deine Dateien physisch dein Gerät nicht verlassen können.

Für Entwickler ist dies eine fertige App-Vorlage mit ordentlicher Architektur. Du kannst das Repository forken und zum Beispiel Export in andere Formate oder spezifische Metadaten-Verarbeitung hinzufügen.

Das Projekt wird aktiv weiterentwickelt, der Autor ist offen für Pull Requests. Der einzige Vorbehalt: Um aus dem Quellcode zu bauen, brauchst du Android Studio Hedgehog oder neuer und JDK 17.

Das Projekt zu bauen ist einfach:

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

Am Ende haben wir ein solides Open-Source-Projekt, das ein echtes Datenschutzproblem löst. In einer Welt, in der jede zweite App versucht, Daten über dich zu sammeln, sind solche Utilities ein frischer Wind.

Ähnliche Projekte