All Projects → danjdt → android-pdfviewer

danjdt / android-pdfviewer

Licence: other
A Android PDF Viewer that render pdf using PdfRenderer and displays it in a RecyclerView.

Programming Languages

kotlin
9241 projects

Projects that are alternatives of or similar to android-pdfviewer

LARAVEL-PDF-VIEWER
A Laravel Package for viewing PDF files or documents on the web without leaving your Web Application
Stars: ✭ 80 (+128.57%)
Mutual labels:  pdf-viewer
Vudit
A file viewer for Android
Stars: ✭ 40 (+14.29%)
Mutual labels:  pdf-viewer
zathura-solarized
The solarized color theme for Zathura
Stars: ✭ 39 (+11.43%)
Mutual labels:  pdf-viewer
pdf-viewer
A Pure Python PDFViewer, which provides functionalities same as other famous PDFViewers.
Stars: ✭ 58 (+65.71%)
Mutual labels:  pdf-viewer
PDFoundry
A fully featured PDF viewer module for Foundry VTT, including form fillable actor sheets, journal links, and more!
Stars: ✭ 38 (+8.57%)
Mutual labels:  pdf-viewer
aesop
[DEPRECATED] The simplest PDF viewer around
Stars: ✭ 1 (-97.14%)
Mutual labels:  pdf-viewer
MouseTooltipTranslator
chrome extension - When mouse hover on text, it shows translated tooltip using google translate
Stars: ✭ 93 (+165.71%)
Mutual labels:  pdf-viewer
digitalmusicstand
web based music sheet viewer (go, pdfjs) as a single binary
Stars: ✭ 22 (-37.14%)
Mutual labels:  pdf-viewer
pdftron-android-samples
PDFTron Android Samples
Stars: ✭ 30 (-14.29%)
Mutual labels:  pdf-viewer
svelte-pdf
svelte-pdf provides a component for rendering PDF documents using PDF.js
Stars: ✭ 102 (+191.43%)
Mutual labels:  pdf-viewer
i-librarian-free
I, Librarian - open-source version of a PDF managing SaaS.
Stars: ✭ 110 (+214.29%)
Mutual labels:  pdf-viewer
sioyek
Sioyek is a PDF viewer designed for reading research papers and technical books.
Stars: ✭ 3,890 (+11014.29%)
Mutual labels:  pdf-viewer
pdf-viewer
PDFjs with flipbook integration (using turnjs4)
Stars: ✭ 85 (+142.86%)
Mutual labels:  pdf-viewer
IKFB
Involution King Fun Book (IKFB, Chinese: 快卷, 卷王快乐本) is an integrated management system for papers and literature. Powered by Electron.
Stars: ✭ 29 (-17.14%)
Mutual labels:  pdf-viewer
JasperViewerFX
The JasperViewerFX is a free JavaFX library which aims to avoid use of JasperReport's swing viewer
Stars: ✭ 27 (-22.86%)
Mutual labels:  pdf-viewer
emacs-application-framework
EAF, an extensible framework that revolutionizes the graphical capabilities of Emacs
Stars: ✭ 2,454 (+6911.43%)
Mutual labels:  pdf-viewer
ng-pdf-highlighter
PDF annotation with angular7
Stars: ✭ 15 (-57.14%)
Mutual labels:  pdf-viewer
eaf-pdf-viewer
Fastest PDF Viewer in Emacs
Stars: ✭ 23 (-34.29%)
Mutual labels:  pdf-viewer
react-view-pdf
A simple and powerful PDF Viewer library for React.js
Stars: ✭ 107 (+205.71%)
Mutual labels:  pdf-viewer
PDF4QT
All-in-one library and application for processing and rendering PDF documents. Contains document viewer/editor application, application for splitting/merging PDF documents and page manipulation, application for comparison of similar PDF documents.
Stars: ✭ 15 (-57.14%)
Mutual labels:  pdf-viewer

Android PDFViewer

Download

A Android PDF Viewer that render pdf using PdfRenderer and displays it in a RecyclerView. The main goal was to render the pages only when necessary using AsyncTask to gain performance.

  • Requires API Level 21

Download

implementation 'com.danjdt:pdfviewer:0.1.0'

How to use

    PdfViewer.Builder(rootView)
      .build()
      .load(file)

All available options:

    PdfViewer.Builder(rootView)
      .view(view)
      .quality(PdfPageQuality)
      .setZoomEnabled(true)
      .setMaxZoom(3f) //zoom multiplier
      .setOnPageChangedListener(onPageChangedListener)
      .setOnErrorListener(onErrorListener)
      .build()
      .load(file)

File load options

    pdfViewer.load(file : File)
    pdfViewer.load(url : String)
    pdfViewer.load(@RawRes resId : Int)
    pdfViewer.load(inputStream : InputStream)
Scroll Zoom

Customize

  • You can customize your view creating any view that implements PdfViewInterface and setting it into the PdfViewer

  • You can customize the adapter overriding the PdfPageViewAdapter and PdfPageViewHolder and setting it as you adapter in the PdfViewerRecyclerView or any recycler view that implements PdfViewInterface

Example

    class MyCustomPdfPageAdapter(private val context: Context) :
        PdfPageAdapter<DefaultPdfPageViewHolder>() {

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DefaultPdfPageViewHolder {
            val inflater = LayoutInflater.from(context)
            val view = inflater.inflate(R.layout.pdf_page, parent, false)
            return DefaultPdfPageViewHolder(view, pdfRenderer, pageSize)
        }

        override fun onBindViewHolder(holder: DefaultPdfPageViewHolder, position: Int) {
            holder.bind(position)
        }
    }

and

    class MyCustomPdfPageViewHolder(view: View, pdfRenderer: PdfRendererInterface, pageSize: Size?) :
    PdfPageViewHolder(view, pdfRenderer, pageSize) {

        private val image: ImageView = itemView.findViewById(R.id.image)

        override fun displayPage(bitmap: Bitmap, position: Int) {
            image.setImageBitmap(bitmap)
        }

        override fun resizePage() {
            pageSize?.let {pageSize ->
                image.layoutParams.width = pageSize.width
                image.layoutParams.height = pageSize.height
            }
        }

        override fun getPage(position: Int) {
            pdfRenderer.get(this, pagePosition)
        }

        override fun displayPlaceHolder() {
            {...}
        }
    }
    

then

    val pdfRecyclerView = PdfViewerRecyclerView(context)
    pdfRecylerView.adapter = MyCustomPdfPageAdapter(context)
    
    PdfViewer.Builder(rootView).view(pdfRecyclerView).build().load(file)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].