2 Star 2 Fork 3

zhangxuehai / android-pdf-view

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

PDF控件

该项目基于 AndroidPdfViewer 二次开发

坐标系

  1. pdf坐标系

  2. dispay坐标系

  3. view坐标系

  4. pdf实际坐标系

pdf坐标系 于pdf实际坐标系

#### 	pdf坐标系

以pdf每个页面的左上角为原点,单位为pdf像素点,该坐标由pdf文件于设备分辨率生成

pdf坐标系

	#### 	pdf 实际坐标系 

pdf实际坐标系

该坐标系于pdf坐标系比例相同,单位比例为 实际pdf:pdf = 1:设备DPI/72

display坐标系

​ 所有pdf页面排成一排或一列(控件的SwipeVertical决定)所组合成的一个长图。坐标原地左上角

pdsplay坐标系1

​ 注意如果存在宽高不同的页面。以最大页面为准

pdsplay坐标系2

view坐标系

​ 即当前pdfview的坐标系

有关坐标计算的重要参数

currentXOffset & currentYOffset

​ 当前view坐标系原点相对于display坐标系原点的位置*view的缩放系数

Offset

​ 如上图,缩放比例如果为1.5,currentXOffset = -300X1.5=-450,currentYOffset= -200X1.5=-300

autoSpacing

​ 按宽度适配时如果pdf的高度不足view的高度。把pdf页面居中,上下加入空间。按高度适配相同原理

​ 注意这个自动添加的spacing是加入到display坐标系中的

autoSpacing

spacingPx

​ pdf页面排列的间距,独立于autoSpacing,并计入display坐标系

坐标转换

关键参数:

pdfPageWidth,pdfPageHeight,DisplayPageWidth,DispalyPageHeight

viewWidth,viewHeight,viewZoom,currentXOffset,currentYOffset

autoSpacing ,spacingPx,swipeVertical

详细转换见 CoordinateUtils

注释管理器

AnnotationManage

负责管理所有的注释的保存于生成,兼保存橡皮擦对象

注释绘画管理器

AnnotationDrawManage

负责绘制注释管理器中的所有注释,橡皮擦

注释类

BaseAnnotation

定义了注释所在页码和画笔

画笔

Pen

具体实现如何绘制注释

使用

pdf呈现参考原项目 AndroidPdfViewer

PDFView.setPenMode(Pen)
PDFView.setMarkMode(Pen)
PDFView.setEraserMode(Eraser)

空文件

简介

一个用于再android设备上显示pdf的控件 支持手写,选中 展开 收起
Android
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Android
1
https://gitee.com/zhangxuehai1993/android-pdf-view.git
git@gitee.com:zhangxuehai1993/android-pdf-view.git
zhangxuehai1993
android-pdf-view
android-pdf-view
master

搜索帮助

53164aa7 5694891 3bd8fe86 5694891