Skip to content

About

Modern PDF Viewer for Android

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

173 stars

Watchers

3 watching

Forks

Latest commit

 

History

520 Commits

Folders and files

English | Русский | Deutsch | Español | Français | Italiano | Português

PDF Reader Pro Logo

Modern PDF Viewer for Android

A feature-rich, privacy-focused PDF app built with Jetpack Compose and Material 3. View, edit, and manage PDFs with 12 powerful tools.

Android API License Kotlin Jetpack Compose


Features

  • PDF Viewing - Smooth rendering with zoom, scroll, and page navigation
  • 12 PDF Tools - Merge, split, compress, rotate, reorder, remove pages, add page numbers, watermark, lock/unlock, PDF to images, images to PDF
  • Bookmarks - Save and manage bookmarks within documents
  • Table of Contents - Navigate using document outlines
  • Search - Full-text search within documents
  • Auto-Scroll - Hands-free reading with adjustable speed
  • File Management - Browse, search, sort, and organize PDFs
  • Recent & Favorites - Quick access to your files
  • Material 3 Design - Modern UI with dark mode and dynamic colors
  • 100% Offline - Complete privacy, no ads, no tracking

Download

GitHub Release

You can download the latest APK from here

Check out the releases section for more details.

PDF Reader Pro - Modern PDF Viewer for Android | Product Hunt


Screenshots

Shots Shots Shots
Screenshot 1 Screenshot 2 Screenshot 3
Screenshot 4 Screenshot 5 Screenshot 6
Screenshot 7 Screenshot 8 Screenshot 9
Screenshot 10 Screenshot 11 Screenshot 12
Screenshot 13 Screenshot 14 Screenshot 15
Screenshot 16 Screenshot 17 Screenshot 18
Screenshot 19 Screenshot 20 Screenshot 21
Screenshot 22 Screenshot 23 Screenshot 24
Screenshot 25 Screenshot 26 Screenshot 27

Architecture

PDF Reader Pro follows Clean Architecture principles with MVVM pattern:

app/
├── data/                      # Data layer
│   ├── local/
│   │   ├── database/          # Room database
│   │   └── preferences/       # DataStore preferences
│   └── repository/            # Repository implementations
│
├── domain/                    # Domain layer
│   ├── model/                 # Domain models
│   └── repository/            # Repository interfaces
│
├── presentation/              # Presentation layer (UI)
│   ├── components/            # Reusable Compose components
│   ├── navigation/            # Navigation graph
│   ├── screens/               # UI screens
│   │   ├── home/              # Home with file browser
│   │   ├── reader/            # PDF reader
│   │   ├── tools/             # PDF tools
│   │   └── settings/          # Settings
│   └── theme/                 # Material 3 theming
│
├── di/                        # Koin dependency injection
└── util/                      # Utilities

Tech Stack

  • UI Framework: Jetpack Compose (100% Compose UI)
  • Language: Kotlin (100%)
  • Architecture: MVVM + Clean Architecture
  • Dependency Injection: Koin
  • Database: Room
  • Async: Kotlin Coroutines + StateFlow
  • Navigation: Jetpack Navigation Compose
  • PDF Rendering: Custom PDF.js WebView
  • PDF Processing: iText 7
  • Image Loading: Coil
  • Data Storage: DataStore Preferences

Requirements

  • Minimum SDK: API 24 (Android 7.0 Nougat)
  • Target SDK: API 36 (Android 16)
  • Compile SDK: API 36
  • Gradle: 9.4.0
  • AGP: 9.1.0
  • Kotlin: 2.3.10
  • Java: 21

Permissions

  • READ_EXTERNAL_STORAGE / READ_MEDIA_DOCUMENTS - Access PDF files
  • WRITE_EXTERNAL_STORAGE - Save processed PDFs (Android 9 and below)
  • INTERNET - Optional, only for in-app update checks

Note: This app does not collect or transmit any user data.


Build & Run

To build and run the project, follow these steps:

  1. Clone the repository:
    git clone https://github.com/ahmmedrejowan/PdfReaderPro.git
  2. Open the project in Android Studio.
  3. Sync the project with Gradle files.
  4. Connect your Android device or start an emulator.
  5. Click on the "Run" button in Android Studio to build and run the app.

Testing

# Run unit tests
./gradlew test

# Run instrumented tests
./gradlew connectedAndroidTest

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines.

Quick Start

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Copyright (C) 2024-2026 K M Rejowan Ahmmed

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

Warning This is a copyleft license. Any derivative work must also be open source under the same license.


Community


Author

K M Rejowan Ahmmed


Acknowledgments


Changelog

v2.5.0 (2026-10-09)

  • Sign documents by drawing, typing or picking an image of your signature, from the reader or Tools
  • Signatures are kept per document, managed from one sheet, and written into the file or a copy
  • Bangla, Russian, German, Spanish, French, Italian, Portuguese, Turkish, Polish, Irish and Japanese translations (#91, #93, #95, #98)
  • Choose the app's language in Settings, on any Android version
  • Translators like Google Translate appear in the text selection menu (#78)
  • Print progress, and saving a copy without the password
  • Crash screen with full details to copy, share or report on GitHub
  • Fixed Japanese, Chinese and Korean PDFs that showed an error instead of opening (#89)
  • Fixed Document Info crashing in landscape and the page slider covering the menu button (#80, #79)
  • Updated core libraries (Kotlin 2.4.20, AGP 9.4.1, Gradle 9.8.0)

v2.4.0 (2026-08-15)

  • Highlight text in five colours, saved per document (#41)
  • Highlights panel with search, colour filter and jump-to-highlight (#41)
  • Next/previous navigation between highlights (#41)
  • In-PDF search shows how many matches are already highlighted (#41)
  • Save a copy with highlights written into the PDF as real annotations (#41)
  • Highlights already present in a file are listed and searchable, read only (#41)
  • Lock horizontal scroll when zoomed in, saved per document (#74)

v2.3.0 (2026-07-19)

  • Setting to hide the page slider that appears while scrolling (#54)
  • In-PDF search now steps through every match across all pages, with the active match centered (#40)
  • Fixed some PDFs failing to open when the file path contained an apostrophe (#57)
  • Updated core libraries (Kotlin 2.4.10, AGP 9.2.1, Android SDK 37)

v2.2.0 (2026-04-23)

  • AMOLED black theme option (Appearance → Theme)
  • Customizable double-tap zoom level (1.1×–5×) with slider
  • Double-tap now zooms toward the tapped location
  • Setting to hide the Tools tab from the bottom navigation
  • Remember Password now auto-fills on reopen (#43)
  • Larger typography and looser spacing in reader sheets (#44)
  • Reader chrome and home nav now properly follow the selected app theme

v2.1.3 (2026-03-24)

  • F-Droid build compatibility (removed JVM toolchain)

v2.1.2 (2026-03-24)

  • Fixed build compatibility with standard OpenJDK

v2.1.1 (2026-03-24)

  • F-Droid metadata and fastlane structure for app store listing

v2.1.0 (2026-03-23)

  • Horizontal page scrubber for horizontal scroll mode
  • Global settings for snap-to-pages and screen orientation
  • Simplified view mode options

v2.0.0 (2026-03-07) - Complete Rewrite

  • Complete UI rewrite with Jetpack Compose and Material 3
  • 12 PDF tools (merge, split, compress, rotate, and more)
  • Enhanced reader with auto-scroll, bookmarks, and night mode
  • Clean Architecture with MVVM
  • Custom PDF.js-based rendering engine
  • 100% Kotlin, 100% offline

See CHANGELOG.md for full version history.


About

Modern PDF Viewer for Android

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

173 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages