Skip to content

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

MJ PDF logo

MJ PDF is a fast, simple, powerful and totally private PDF reader made by Mudlej.

License: GPLv3 Version API IzzyOnDroid

The official MJ PDF page on mudlej.com


Get it on IzzyOnDroid Direct APK download Source code on GitLab GitHub mirror

F-Droid main repo and Play Store are not available for now, see the FAQ.

Screenshots

Home Library Highlight & Select
Home Library Highlight and select text
Dark Mode Reader Menu Share Quotes
Dark mode Reader menu Share quotes as images

More screenshots are in the MJ PDF Gallery.

What's new in 3.1

Version 3.1 is a correctness and stability release: a few new reading options, much safer saving and backups, and a long list of fixes.

  • Single Page Mode shows one full page per screen and turns pages like a book, with taps on the screen edges flipping the page.
  • Pick a page fit policy: fit pages by width, by height, or show the whole page.
  • One Reading Mode setting gathers continuous, horizontal, single page, and dual page.
  • Search happens without leaving the document, and results wrap around at both ends.
  • Files shared by other apps ask before a copy is kept, or always keep one, your choice.
  • Saving is far safer: every write is verified, failed saves keep a rescue copy, and saved files no longer grow.
  • Documents are identified more reliably, so two similar files never share reading history.
  • The theme toggle stays visible when the PDF theme follows the system, and lets you pick a theme on the spot.
  • Dozens of fixes across search, gestures, backups, rotation, and right to left reading.

The full list is in the changelog. Coming from 2.x? See what 3.0 added on the v3.0 release page.

MJ PDF Features

Library

  • Home screen with three tabs: Recent, Library, and Folders.
  • Continue reading right where you left off, with a detailed reading history.
  • Reading statuses: to-read, reading, on-hold, completed, abandoned.
  • Cover grid or list view, with adjustable grid size and sorting.
  • The Folders tab is a real file manager with breadcrumbs and SD-card support.
  • Search every PDF on your device.
  • Reading progress and statuses survive file moves and renames.

Reader

  • Fast, simple, and very lightweight.
  • Dark mode for the app and for the PDF itself.
  • True full screen with configurable buttons, reading progress, time, and page info.
  • Rotate, brightness bar, auto-scroll with adjustable speed, zoom lock, screenshots.
  • Dual page mode that pairs pages like an open book.
  • Single Page Mode and a page fit policy: by width, by height, or whole page.
  • Hide PDF margins to make the page fill your screen.
  • Right-to-left reading with automatic detection.
  • Open password-protected PDFs and online PDFs through links.
  • Share and print PDFs. Open multiple instances at the same time.
  • Mouse wheel and mouse button support, volume-key page turning.

Highlights, signatures, and forms

  • Highlight text and save the highlights into the PDF file.
  • Attach notes to highlights, browse them in My Notes and My Highlights pages.
  • Edit highlights that already exist in the document.
  • Draw a handwritten signature once, reuse it anywhere, saved as sharp vector strokes.
  • Fill PDF forms.
  • Select text inline with copy, share, web-search, translate, and dictionary actions.
  • Share quotes as images, with the book's name and a choice of themes.

Search and navigation

  • Very fast and powerful search with live streaming results.
  • Next and previous result navigation from inside the reader.
  • A page for the full Table of Contents, with search.
  • A page for all the links embedded in the PDF.
  • User bookmarks with custom names and chapter context.
  • Browser-like back and forward navigation history.

Text Mode

  • Read any PDF like an e-book.
  • Text reflow, multiple fonts, themes, and adjustable line length.

Privacy

  • Open source with total privacy.
  • No data collection, no ads, no tracking.
  • Incognito mode that saves nothing about what you read.
  • Shared files can be kept as private copies so they reopen reliably: always, or ask each time.

Permissions and privacy

This app does not collect any data. The following permissions are required to provide specific features in the app:

  • Internet: For opening PDFs through links
  • Storage / all-files access: For scanning, opening, and managing the PDFs on your device

Exodus privacy reports a tracker in MJ PDF. That is ACRA, the crash reporter, and it does NOT send anything unless you explicitly press SEND on the dialog that appears after a crash. Its configuration is in the code, and there is more detail in the FAQ.

How to build

git clone https://gitlab.com/mudlej_android/mj_pdf_reader.git
cd mj_pdf_reader
./gradlew assembleDebug

That is enough for the app itself, since prebuilt native libraries are included.

  • To set up a build environment from a fresh Linux install, see SETUP.md.
  • To rebuild the native libraries (PDFium, FreeType, libpng, and the JNI bridge), use the scripts in build_dependencies. Since 3.0.0, PDFium is built from source and optimized for speed instead of size, which fixed a years-old rendering slowdown.
  • After editing mainJNILib.cpp, go to PdfiumAndroid/src/main/jni and run ndk-build. Every future build will use the generated libs.

The repository is three modules:

Module Role
app The MJ PDF application
AndroidPdfViewer MJ PDF's viewer library: rendering, gestures, text selection, highlights
PdfiumAndroid MJ PDF's bindings to the PDFium engine

Contributing

  • Bugs and requests: open an issue on GitLab. If you do not have a GitLab account, use the GitHub mirror.
  • Translations: MJ PDF is available in 15 languages: Arabic, Chinese, Dutch, English, French, German, Hindi, Italian, Persian, Polish, Portuguese (Brazil), Russian, Spanish, Ukrainian and Turkish. To add or improve one, edit app/src/main/res/values-<lang>/strings.xml and open a merge request.

Authors and acknowledgment

  • MJ PDF is made by Mudlej. The full story is on the official page.
  • MJ PDF v1 and v2 were based on PDF Viewer Plus by Gokul Swaminathan (@JavaCafe01), who discontinued his app and recommended MJ PDF as its replacement. The app in v3.0.0 since been entirely rewritten.
  • @barteksc wrote the original viewer and PDFium binding libraries that MJ PDF's PDF stack grew from.
  • Credits to @Derekelkins for adding the ability to remember the last opened page to the original app.
  • Big thanks to Bnyro (LibreTube's dev) for helping me with the colors and the migration to M3. (MJ PDF v2.1)
  • Community translators brought the app to 15 languages.

License

MJ PDF uses the GPLv3 license. The original app (PDF Viewer Plus) was under the MIT license.

About

No description, website, or topics provided.

Resources

Stars

625 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors