Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

PdfCraft's app icon

PdfCraft for Android

An Android native open-source PDF reader and editor written in Rust, built on the same engine as the desktop app, PdfCraft, with a Kotlin/Jetpack Compose UI.
Many credits to the original maintainers, storytold.

Get it on F-Droid Get it on GitHub Get it on Obtainium
Each release has two APKs: the plain one for most phones, the -armeabi-v7a one for 32-bit ARM phones.

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 barNight Mode: the Scripts of the World and Mathematics pages shown as light text on black
Reading Mode: text reflowed to the screenNight 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 barBookmarks 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 glanceThe 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 boxThe 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 ReplyThe 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 blueFill 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 blueFill & 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.0xThe 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 readThe 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 toolbarCompress 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 toolbarCompress 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 tabsThe 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 deviceThe 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 toolbarHome in the light theme: the tools on pale tiles, Recent with application and pdfcraft-showcase, and the tabs
The viewer in the light themeHome 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.

AreaStatus
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; form JavaScript (calculations, field checks, buttons)✅
Digital signatures: sign with a digital ID (a .p12 / .pfx file, or one made in the app), check a document's signatures, trust signers✅
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✅
Extra Features in Preferences, off until you turn them on: the status bar in documents✅
Translations: all of the app's text is ready to translate (how)✅ · Spanish ✅ · other languages ⬜
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.


Translating

All of PdfCraft's text is in one file: apps/pdfcraft-android/android/app/src/main/res/values/strings.xml. To add a language:

  • copy it to a values-<language> folder beside it: values-es/strings.xml for Spanish, values-pt-rBR/strings.xml for Brazilian Portuguese
  • translate the text between the tags; keep each name, the placeholders (%1$s, %2$d, which you may move) and escapes such as \'
  • leave out anything you haven't translated yet: it shows in English
  • open a pull request

The store listing is in fastlane/metadata/android/en-US/; a copy in a folder for your language (es-ES, pt-BR) translates it too. On Android 13 and newer, PdfCraft's language can be set on its own under Settings ▸ Apps ▸ PdfCraft ▸ Language. A few messages from the PDF engine, such as some errors and the names in Undo, are English for now.


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

PdfCraft for Android: An Android native open-source PDF reader and editor written in Rust

语言 Languages

Rust92.2%
Kotlin7.3%
HTML0.6%
Shell0.0%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
45
Total Commits
峰值: 20次/周
Less
More

核心贡献者 Contributors