Search packages, repositories and app categories

GitHub repositoryscientifichackers/flutter_pdf_viewer

flutter_pdf_viewer

A native PDF viewer for flutter.

flutter_pdf_viewer project cover
Stars
107
Forks
40
Last push (UTC)
Apr 23, 2020
Project status
Active

Original README

English project snapshot. Visit GitHub for the latest content.

Sponsor pub package

flutter pdf viewer

A native Pdf viewer for flutter, built on AndroidPdfViewer.

P.S. Android Only!

Features

  • Night Mode
  • Scroll Bar
  • Horizontal swipe
  • Pinch to zoom
  • Show inline Videos in Pdf
  • Immersive mode
  • Page by page analytics

Security

  • Features fast native speed XOR - decryption of files.
  • Password protected pdf.
  • Display PDF from bytes without ever touching the disk!

Drawbacks

  • Inline Pdf Viewing is not supported. ( A new activity is opened ). See #1.

    A proof of concept for inline PDFs is available at the inline branch.

Install

To use this plugin, follow the installation instructions.

License: MIT

NOTE: You must add these lines at android/app/build.gradle.

(This is required by ExoPlayer, which is used to play videos).

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

Example

$ git clone https://github.com/pycampers/flutter_pdf_viewer.git
$ cd flutter_pdf_viewer/example
$ flutter run

Preview

Generating 64-bit APKs

The Underlying native library tends to blow up the APK size. So, you can build a separate APK for each CPU architecture.

This will also fix an issue with flutter tooling, where 64-bit ARM devices don't work.

Add the following section in android/app/build.gradle -

android {
    defaultConfig {
        ndk {
            abiFilters "<arch>"
        }
    }
}
  • For 32-bit APK, replace <arch> with armeabi-v7a, and run $ flutter build apk --release as usual.

  • For 64-bit APK, replace <arch> with arm64-v8a, and run $ flutter build apk --release --target-platform=android-arm64.

Now you have 2 Apks, which you will need to publish separately to the Play Store. For that you need to tweak the android:versionCode property to have slightly different values for each build.

The exact "Rules for multiple APKs" can be found here.

Thanks


🐍🏕️

Scientific Hackers GitHub avatar
GitHub author

Scientific Hackers ↗

Dedicated hackers that live by the scientific method

LanguagesKotlinDartSwiftRubyObjective-C

Dependencies used

Dependency list 3 items

  • flutter{"sdk":"flutter"}
  • crypto^2.0.6
  • plugin_scaffold^1.1.1

How do I choose a repository?

Start with your use case, compare repository activity, and check the original project before adopting it.

  1. Search by repository name, owner or description, then narrow the results by topic.
  2. Compare stars, forks and recent pushes. Stars show community interest, not a guarantee of quality.
  3. Read the README, license and issues on GitHub before using a project.

Sources and maintenance

“A repository is the most basic element of GitHub.”

GitHub Docs — About repositories ↗