Skip to content

About

An open-source, reimplementation of Adobe Acrobat Reader in Rust while using Kotlin as the UI framework.

Resources

Stars

90 stars

Watchers

0 watching

Forks

Repository files navigation

PdfCraft's app icon

PdfCraft for Android

PdfCraft-android is an open-source reimplementation of the Adobe Acrobat Reader Android app, created using the same Rust engine, PdfCraft, as the desktop app, and built with a Kotlin/Jetpack Compose UI framework.
Many credits to the original maintainers, storytold.

Get it on GitHub Get it on Obtainium

Rust engine Kotlin and Jetpack Compose Minimum: Android 10 (API 29) Target: Android 16 (API 36) License: MIT OR Apache-2.0 Status: beta

Reading · Navigate · Comments · Forms & Fill & Sign · Edit PDF · Read aloud · Tools · Home · Light theme · Architecture · Planned features · Building


The PdfCraft Showcase open on its cover: a deep blue and orange gradient with the title Showcase and 'A tour of the page, glyph by glyph.', the page pill at 1, the top bar with back, the Read aloud switch, Find, Share and More, and the quick toolbar: Edit PDF, Comment, Highlight, Draw, Fill & Sign, Export PDF and More tools
The PdfCraft Showcase, a 13-page specimen PDF, open on its cover.


Reading

The Scripts of the World page with the bars hidden: Arabic, Hebrew, Devanagari, Thai, Greek, Cyrillic, Chinese, Korean, IPA, Armenian, Georgian and Tamil samples, vertical Japanese in the margin, mixed-direction text and colour emoji, with the Mathematics page below
Twelve writing systems, vertical Japanese and colour emoji, with the bars hidden by a tap.


Reading Mode on the foreword: the heading Why a specimen? and its paragraphs reflowed in large type to the width of the screen, under the viewer's top bar Night Mode: the Scripts of the World and Mathematics pages shown as light text on black
Reading Mode: text reflowed to the screen Night Mode, from View settings

Navigate long documents

The Pages grid: two columns of page thumbnails numbered 1 to 8, the current page outlined in blue, with Edit PDF and Crop pages in the bar Bookmarks and Table of Contents over the cover: the Contents tab open on the document's outline, from Contents and Why a specimen? to Review and Markup and Interactive Form
Pages: every page at a glance The outline, and bookmarks of your own

Comments

The Review and Markup page with a sticky note selected and ringed in blue, and the comment panel below it: 3 of 17 with arrows, a thread of two comments by PdfCraft Reviewer and Layout Editor, and a Reply box The full-screen comment list titled 17 comment threads, grouped by page: notes, a highlighted phrase with its comment, a threaded note with a reply and a text box, each with Reply
A comment's thread, ‹ 3 of 17 › and Reply The Comment List, by page

Forms & Fill & Sign

The Interactive Form page: text fields, a date, an amount, a multiline comment, checkboxes, radio buttons, a combo box, a multi-select list, a push button and a signature field, every fillable field tinted blue Fill and Sign on the Interactive Form page: a drawn signature placed in the signature field, Done at the top left with undo and redo, and the Sign tool in the bar below
Every fillable field tinted blue Fill & Sign: a signature placed with a tap

Edit PDF

Edit PDF on the Review and Markup page: a paragraph selected in a blue box with round handles, a menu with Edit text, Select all and Delete above it, and the formatting bar below: bold, italic, underline, size, font, colour and alignment
Edit PDF: tap a paragraph to edit its text, change its style, move it or rewrap it.


Read aloud

Read aloud playing on the Code and Images page: the running header washed yellow with the current word stronger, the Read aloud switch turned on, and the player at the bottom with a progress bar, back 15 seconds, pause, forward 15 seconds and 1.0x The full Read aloud player: a picture of the page being read, the file name pdfcraft-showcase, a progress bar with 20:20 and -5:03, back 15 seconds, pause and forward 15 seconds, then Voice and 1.0x
Read aloud, the words marked as they're read The full player: time left, Voice and speed

Tools

The More tools sheet over the Scripts of the World page: Combine files, Compress PDF, Set password, Organize pages, Crop pages, Recognize text, Create PDF, Text, Scan and Read aloud, then Customize toolbar Compress PDF: the file card for pdfcraft-showcase, PDF, 2.8 MB, then High, Medium and Low compression with Medium chosen, and the Compress button
More tools, and Customize toolbar Compress PDF, one of the tools that make a new file

Home

Home: Welcome back, Start with a tool with Open file, Edit PDF, Read aloud, Fill & Sign, Create PDF and Organize pages, then Recent, Starred and On device with application and pdfcraft-showcase listed, the add button, and the Home, Files, Tools and Search tabs The Tools tab: All, Read, Create, Edit and Convert, and cards for Fill & Sign, Add comment, Read aloud, Create PDF, New scan, Combine files, Organize pages, Crop pages, Edit PDF, Compress PDF, Export PDF and Set password
Home: the tools, Recent, Starred and On device The Tools tab: every tool, by what it does

Light theme

The viewer in the light theme on the Scripts of the World page, with the white top bar and quick toolbar Home in the light theme: the tools on pale tiles, Recent with application and pdfcraft-showcase, and the tabs
The viewer in the light theme Home in the light theme

Architecture

Architecture diagram: the PDF user chooses a document in the Android experience (Home library, Open document, App state, PDF viewer, Reading tools, Page navigation, Forms and signing, PDF editing, Comment tools), which calls the Rust engine through the Android engine bridge; the document runtime (PDF engine, page rendering, PDF object parser) and its PDF operations (create and extract, document editing, form handling, annotations) and extended capabilities (accessibility checks, automation tools, office export, PDF signatures)
How the app and the engine fit together. Generated with GitDiagram.


Planned features

PdfCraft for Android is in beta.

Area Status
Open PDFs from files, other apps and Recent; Starred, On device, Files and Search ✅
Reading: continuous and single page, Reading Mode, Night Mode, find, text selection, links, bookmarks and contents, attachments ✅
Read aloud with the phone's voice, the words marked as they're read, and a full player ✅
Comments: notes, voice comments, highlight, underline, strikethrough, drawing (snap to shape), text; the Comment List and threads ✅
Forms, and Fill & Sign: text, marks and a drawn or imported signature ✅
Edit PDF: edit text, add text and images, move, resize and turn pictures ✅ · cropping a picture ⬜
Organize and crop pages ✅
Compress, combine, set password, create PDF (images, text, office documents), scan ✅
Export to Word, RTF, Excel, PowerPoint, JPEG and PNG ✅ · Word 97 ⬜
Recognize text ✅ (the Latin alphabet without accents)
A customizable quick toolbar, upright and sideways layouts, light and dark themes ✅
AI assistant, cloud storage, sharing for review 🚫 PdfCraft is a local app

✅ works today · 🚧 in progress · ⬜ not started · 🚫 not planned


Building Instructions

One Gradle command builds the whole app: it compiles the Rust engine with cargo-ndk and generates the Kotlin bindings.

  • Clone this repository
  • Make sure you have at least 3 GB of free disk space
  • Recognize text's models (12 MB, CC-BY-SA-4.0) are in assets/models/; apps/pdfcraft-android/fetch-models.sh downloads them again if you need to
  • enter apps/pdfcraft-android/android and run ./gradlew assembleRelease, or open that folder in Android Studio and press Run.

Build time dependencies:

required tools
    rustup (it installs the Rust release and Android targets rust-toolchain.toml names)
    cargo install cargo-ndk --version 4.1.2 --locked
    Android SDK (API 37) and NDK 29.0.14206865
    JDK 17 or newer

Builds are only tested on Windows 11.


License

MIT OR Apache-2.0, at your option. PdfCraft for Android is not affiliated with Adobe; Acrobat is a trademark of Adobe Inc.


Misc info for myself

Try to use semantic commit messages. Use feat: / fix: / chore: / docs: / etc.

About

An open-source, reimplementation of Adobe Acrobat Reader in Rust while using Kotlin as the UI framework.

Resources

Stars

90 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages