Pdf viewer github android

Pdf viewer github android

Looking for new maintainer!

AndroidPdfViewer 1.x is available on AndroidPdfViewerV1 repo, where can be developed independently. Version 1.x uses different engine for drawing document on canvas, so if you don’t like 2.x version, try 1.x.

Library for displaying PDF documents on Android, with animations , gestures , zoom and double tap support. It is based on PdfiumAndroid for decoding PDF files. Works on API 11 (Android 3.0) and higher. Licensed under Apache License 2.0.

What’s new in 3.2.0-beta.1?

  • Merge PR #714 with optimized page load
  • Merge PR #776 with fix for max & min zoom level
  • Merge PR #722 with fix for showing right position when view size changed
  • Merge PR #703 with fix for too many threads
  • Merge PR #702 with fix for memory leak
  • Merge PR #689 with possibility to disable long click
  • Merge PR #628 with fix for hiding scroll handle
  • Merge PR #627 with fitEachPage option
  • Merge PR #638 and #406 with fixed NPE
  • Merge PR #780 with README fix
  • Update compile SDK and support library to 28
  • Update Gradle and Gradle Plugin

Changes in 3.0 API

  • Replaced Contants.PRELOAD_COUNT with PRELOAD_OFFSET
  • Removed PDFView#fitToWidth() (variant without arguments)
  • Removed Configurator#invalidPageColor(int) method as invalid pages are not rendered
  • Removed page size parameters from OnRenderListener#onInitiallyRendered(int) method, as document may have different page sizes
  • Removed PDFView#setSwipeVertical() method

Add to build.gradle:

or if you want to use more stable version:

Library is available in jcenter repository, probably it’ll be in Maven Central soon.

If you are using ProGuard, add following rule to proguard config file:

Include PDFView in your layout

Load a PDF file

All available options with default values:

  • pages is optional, it allows you to filter and order the pages of the PDF as you need

Scroll handle is replacement for ScrollBar from 1.x branch.

From version 2.1.0 putting PDFView in RelativeLayout to use ScrollHandle is not required, you can use any layout.

To use scroll handle just register it using method Configurator#scrollHandle() . This method accepts implementations of ScrollHandle interface.

There is default implementation shipped with AndroidPdfViewer, and you can use it with .scrollHandle(new DefaultScrollHandle(this)) . DefaultScrollHandle is placed on the right (when scrolling vertically) or on the bottom (when scrolling horizontally). By using constructor with second argument ( new DefaultScrollHandle(this, true) ), handle can be placed left or top.

You can also create custom scroll handles, just implement ScrollHandle interface. All methods are documented as Javadoc comments on interface source.

Version 2.3.0 introduced document sources, which are just providers for PDF documents. Every provider implements DocumentSource interface. Predefined providers are available in com.github.barteksc.pdfviewer.source package and can be used as samples for creating custom ones.

Predefined providers can be used with shorthand methods:

Custom providers may be used with pdfView.fromSource(DocumentSource) method.

Version 3.0.0 introduced support for links in PDF documents. By default, DefaultLinkHandler is used and clicking on link that references page in same document causes jump to destination page and clicking on link that targets some URI causes opening it in default application.

You can also create custom link handlers, just implement LinkHandler interface and set it using Configurator#linkHandler(LinkHandler) method. Take a look at DefaultLinkHandler source to implement custom behavior.

Pages fit policy

Since version 3.0.0, library supports fitting pages into the screen in 3 modes:

  • WIDTH — width of widest page is equal to screen width
  • HEIGHT — height of highest page is equal to screen height
  • BOTH — based on widest and highest pages, every page is scaled to be fully visible on screen

Apart from selected policy, every page is scaled to have size relative to other pages.

Fit policy can be set using Configurator#pageFitPolicy(FitPolicy) . Default policy is WIDTH.

By default, generated bitmaps are compressed with RGB_565 format to reduce memory consumption. Rendering with ARGB_8888 can be forced by using pdfView.useBestQuality(true) method.

Читайте также:  Облако mail для андроида

Double tap zooming

There are three zoom levels: min (default 1), mid (default 1.75) and max (default 3). On first double tap, view is zoomed to mid level, on second to max level, and on third returns to min level. If you are between mid and max levels, double tapping causes zooming to max and so on.

Zoom levels can be changed using following methods:

Why resulting apk is so big?

Android PdfViewer depends on PdfiumAndroid, which is set of native libraries (almost 16 MB) for many architectures. Apk must contain all this libraries to run on every device available on market. Fortunately, Google Play allows us to upload multiple apks, e.g. one per every architecture. There is good article on automatically splitting your application into multiple apks, available here. Most important section is Improving multiple APKs creation and versionCode handling with APK Splits, but whole article is worth reading. You only need to do this in your application, no need for forking PdfiumAndroid or so.

Why I cannot open PDF from URL?

Downloading files is long running process which must be aware of Activity lifecycle, must support some configuration, data cleanup and caching, so creating such module will probably end up as new library.

How can I show last opened page after configuration change?

You have to store current page number and then set it with pdfView.defaultPage(page) , refer to sample app

How can I fit document to screen width (eg. on orientation change)?

Use FitPolicy.WIDTH policy or add following snippet when you want to fit desired page in document with different page sizes:

How can I scroll through single pages like a ViewPager?

You can use a combination of the following settings to get scroll and fling behaviour similar to a ViewPager:

If you have any suggestions on making this lib better, write me, create issue or write some code and send pull request.

Created with the help of android-pdfview by Joan Zapata

About

Android view for displaying PDFs rendered with PdfiumAndroid

Источник

Pdf viewer github android

This is repo with version 1.x of AndroidPdfViewer. Version 1.x uses different engine for drawing document on canvas, so if you don’t like 2.x version, try this. This version is still updated and supported.

Library for displaying PDF documents on Android, with animations , gestures , zoom and double tap support. It is based on PdfiumAndroid for decoding PDF files. Works on API 11 and higher. Licensed under Apache License 2.0.

What’s new in 1.6.0?

  • Add change from AndroidPdfViewer 2.4.0 which replaces RenderingAsyncTask with Handler to simplify code and work with testing frameworks

Add to build.gradle:

Library is available in jcenter repository, probably it’ll be in Maven Central soon.

Include PDFView in your layout

Load a PDF file

All available options with default values:

  • enableSwipe is optional, it allows you to block changing pages using swipe
  • pages is optional, it allows you to filter and order the pages of the PDF as you need
  • onDraw is also optional, and allows you to draw something on a provided canvas, above the current page

Use ScrollBar class to place scrollbar view near PDFView

in layout XML (it’s important that the parent view is RelativeLayout):

in activity or fragment

scrollBar.setHorizontal(true); or app:sb_horizontal=»true» may be used to set ScrollBar in horizontal mode.

ScrollBarPageIndicator is added to scrollbar automatically and is shown while dragging scrollbar handler, displaying number of page on current position. Its position is automatically calculated based on ScrollBar‘s position.

Version 1.5.0 introduced document sources, which are just providers for PDF documents. Every provider implements DocumentSource interface. Predefined providers are available in com.github.barteksc.pdfviewer.source package and can be used as samples for creating custom ones.

Predefined providers can be used with shorthand methods:

Читайте также:  Добавить конфигурацию android studio

Custom providers may be used with pdfView.fromSource(DocumentSource) method.

By default, generated bitmaps are compressed with RGB_565 format to reduce memory consumption. Rendering with ARGB_8888 can be forced by using pdfView.useBestQuality(true) method.

Double tap zooming

There are three zoom levels: min (default 1), mid (default 1.75) and max (default 3). On first double tap, view is zoomed to mid level, on second to max level, and on third returns to min level. If you are between mid and max levels, double tapping causes zooming to max and so on.

Zoom levels can be changed using following methods:

Why resulting apk is so big?

Android PdfViewer depends on PdfiumAndroid, which is set of native libraries (almost 16 MB) for many architectures. Apk must contain all this libraries to run on every device available on market. Fortunately, Google Play allows us to upload multiple apks, e.g. one per every architecture. There is good article on automatically splitting your application into multiple apks, available here. Most important section is Improving multiple APKs creation and versionCode handling with APK Splits, but whole article is worth reading. You only need to do this in your application, no need for forking PdfiumAndroid or so.

If you have any suggestions on making this lib better, write me, create issue or write some code and send pull request.

Created with the help of android-pdfview by Joan Zapata

Источник

Pdf viewer github android

Pdf Viewer For Android

A Simple PDF Viewer library which only occupies around 125kb while most of the Pdf viewer occupies upto 16MB space.

How to integrate into your app?

Integrating the project is simple, All you need to do is follow the below steps

Step 1. Add the JitPack repository to your build file. Add it in your root build.gradle at the end of repositories:

Step 2. Add the dependency

NOTE: Replace the tag with current release version, e.g

How to use the library?

Now you have integrated the library in your project but how do you use it? Well its really easy just launch the intent with in following way:

That’s pretty much it and you’re all wrapped up.

You need to add the custom theme to styles.xml/themes.xml file and override the required attribute values. Parent theme can be either Theme.PdfView.Light or Theme.PdfView.Dark or the one with no actionbar from the application. Note: If parent is not one of the themes from this library, all of the pdfView attributes should be added to that theme.

Attribute Name Type Expected changes
pdfView_backIcon drawable Navigation icon
pdfView_downloadIcon drawable Download icon
pdfView_downloadIconTint color Download icon tint
pdfView_actionBarTint color Actionbar background color
pdfView_titleTextStyle style Actionbar title text appearance
pdfView_progressBar style Progress bar style

Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch ( git checkout -b feature/NewFeature )
  3. Commit your Changes ( git commit -m ‘Add some NewFeature’ )
  4. Push to the Branch ( git push origin feature/NewFeature )
  5. Open a Pull Request

If this project help you reduce time to develop, you can give me a cup of coffee 🙂

Источник

Pdf viewer github android

AndroidPdfViewer 1.x is available on AndroidPdfViewerV1 repo, where can be developed independently. Version 1.x uses different engine for drawing document on canvas, so if you don’t like 2.x version, try 1.x.

Library for displaying PDF documents on Android, with animations , gestures , zoom and double tap support. It is based on PdfiumAndroid for decoding PDF files. Works on API 11 (Android 3.0) and higher. Licensed under Apache License 2.0.

What’s new in 2.8.0?

  • Add handling of invalid pages, inspired by pull request #433. Exception on page opening crashed application until now, currently OnPageErrorListener set with Configurator#onPageError() is called. Invalid page color ( Color class) can be set using Configurator#invalidPageColor()
  • Implement canScrollVertically() and canScrollHorizontally() methods to work e.g. with SwipeRefreshLayout
  • Fix bug when Configurator#load() method was called before view has been measured, which resulted in empty canvas

2.8.1 fixes bug with rendering PDFView in Android Studio Layout Editor

2.8.2 fixes not loaded pages when using animated PDFView#jumpTo()

Changes in 2.0 API

  • Configurator#defaultPage(int) and PDFView#jumpTo(int) now require page index (i.e. starting from 0)
  • OnPageChangeListener#onPageChanged(int, int) is called with page index (i.e. starting from 0)
  • removed scrollbar
  • added scroll handle as a replacement for scrollbar, use with Configurator#scrollHandle()
  • added OnPageScrollListener listener due to continuous scroll, register with Configurator#onPageScroll()
  • default scroll direction is vertical, so Configurator#swipeVertical() was changed to Configurator#swipeHorizontal()
  • removed minimap and mask configuration

Add to build.gradle:

Library is available in jcenter repository, probably it’ll be in Maven Central soon.

Include PDFView in your layout

Load a PDF file

All available options with default values:

  • pages is optional, it allows you to filter and order the pages of the PDF as you need

Scroll handle is replacement for ScrollBar from 1.x branch.

From version 2.1.0 putting PDFView in RelativeLayout to use ScrollHandle is not required, you can use any layout.

To use scroll handle just register it using method Configurator#scrollHandle() . This method accepts implementations of ScrollHandle interface.

There is default implementation shipped with AndroidPdfViewer, and you can use it with .scrollHandle(new DefaultScrollHandle(this)) . DefaultScrollHandle is placed on the right (when scrolling vertically) or on the bottom (when scrolling horizontally). By using constructor with second argument ( new DefaultScrollHandle(this, true) ), handle can be placed left or top.

You can also create custom scroll handles, just implement ScrollHandle interface. All methods are documented as Javadoc comments on interface source.

Version 2.3.0 introduced document sources, which are just providers for PDF documents. Every provider implements DocumentSource interface. Predefined providers are available in com.github.barteksc.pdfviewer.source package and can be used as samples for creating custom ones.

Predefined providers can be used with shorthand methods:

Custom providers may be used with pdfView.fromSource(DocumentSource) method.

By default, generated bitmaps are compressed with RGB_565 format to reduce memory consumption. Rendering with ARGB_8888 can be forced by using pdfView.useBestQuality(true) method.

Double tap zooming

There are three zoom levels: min (default 1), mid (default 1.75) and max (default 3). On first double tap, view is zoomed to mid level, on second to max level, and on third returns to min level. If you are between mid and max levels, double tapping causes zooming to max and so on.

Zoom levels can be changed using following methods:

Why resulting apk is so big?

Android PdfViewer depends on PdfiumAndroid, which is set of native libraries (almost 16 MB) for many architectures. Apk must contain all this libraries to run on every device available on market. Fortunately, Google Play allows us to upload multiple apks, e.g. one per every architecture. There is good article on automatically splitting your application into multiple apks, available here. Most important section is Improving multiple APKs creation and versionCode handling with APK Splits, but whole article is worth reading. You only need to do this in your application, no need for forking PdfiumAndroid or so.

Why I cannot open PDF from URL?

Downloading files is long running process which must be aware of Activity lifecycle, must support some configuration, data cleanup and caching, so creating such module will probably end up as new library.

How can I show last opened page after configuration change?

You have to store current page number and then set it with pdfView.defaultPage(page) , refer to sample app

How can I fit document to screen width (eg. on orientation change)?

Use this code snippet:

If you have any suggestions on making this lib better, write me, create issue or write some code and send pull request.

Created with the help of android-pdfview by Joan Zapata

About

Android view for displaying PDFs rendered with PdfiumAndroid

Источник

Читайте также:  Андроид для планшета wexler
Оцените статью