Skip to content

Android view for displaying PDFs rendered with PdfiumAndroid

License

Notifications You must be signed in to change notification settings

KennyChaos7/AndroidPdfViewer

 
 

Repository files navigation

README

本仓库只用于存储对PdfViewer的个性化修改

  • 编译构建pdfium并打包生成so,将其应用在本仓库中
  • 逐帧数据绘制完成回调
  • 增加loading页面
    • 可以考虑是否增加到每个bitmap上
  • 增加是否进行pdfView缩略图分块渲染设置
    • 创建PdfView时,PdfView.isThumbnailSplit(true) 可以设置为缩略图分块渲染模式
    • 支持在Constants中直接修改具体块数,横向THUMBNAIL_SPLIT_VERTICAL纵向THUMBNAIL_SPLIT_LEVEL
    • 分的块数越多会导致实际显示效果不佳
  • 单页模式
      • 单页模式1.0
      • 原本pdfview中也有单页模式,需要在PdfView.pages()中填入相应的页码,限制要读取的页码数据。但在实际的情况下的单页模式,更多是取消连续滑动,靠下一页按钮进行切换,但仍需要读取全部页码数据。
      • 拥有基本单页效果
        • 创建PdfView时,PdfView.singlePageMode(true) 可以设置为单页模式
        • 可以直接依靠PdfView.loadNextPage(), PdfView.loadPreviousPage() 进行上下页切换
        • 兼容jumpTo等方法
      • 优化滑动和缩放的效果
      • 处理单页模式下的页码不正确问题
      • 先加载缩略图后,再加载原图(原pdf库中的加载顺序,是先所有缩略图,然后是所有原图,这样会导致单页模式下加载时会出现"先A页缩略图,覆盖上B页缩略图,接着又被A页原图覆盖。最后被B页原图覆盖"这种情况,所以可以考虑使用PriorityQueue来处理,仅以入队顺序作为加载的先后,待考虑功能)
      • 需要进行优先度区分,先加载当前显示的页面,然后再按照加入的顺序区分
      • 可以考虑优化加载区块,如果区块A中已经加载了原图,则不渲染这块的缩略图,如果未加载原图,再去加载缩略图(需要通过判断原图的RectF是否在此块缩略图的RectF中) 并未能加快加载速度,本身canvas的draw方法并不会过于耗时,主耗时的区域还是在fpdf中的读取文件时候
  • 双页模式
    • 在同个屏幕渲染两页pdf
  • 是否渲染到opengles中
  • 更新最新的FPDF库
  • 兼容原仓库的16K问题修复

About

Android view for displaying PDFs rendered with PdfiumAndroid

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 63.3%
  • Java 31.5%
  • C++ 5.1%
  • Makefile 0.1%