iOS 读取 以及 高亮 PDF

来源:互联网 发布:5eplay对战平台知乎 编辑:程序博客网 时间:2024/05/18 04:01

   咳咳,大家好,好长时间没有写这个blog了,这段时间跟着leader做一个解析pdf的东东,纠结了好长时间,leader手下面 很多项目,但还是帮我做了好多工作,不说废话了,我们来看看这个项目吧,这个解析pdf的项目其实是一个大项目的一部分,其实还有解析其他格式文档的模块,我做的这个模块真是把我折腾死了,下面列出几个我个人在项目中运用到的几个比较好的网址和大家分享下。

1. PDF解析 http://blog.random-ideas.net/?p=184

2. 精简版的 reference http://www.syncfusion.com/Content/downloads/ebook/PDF_Succinctly.pdf

还有最重要的 PDF Reference 自己下载吧,当然少不了国外的网址啦,such as stackoverflow.com 还有 Adobe.com 啦。。。

接下来说下高亮的功能,思路:首先通过通过操作符拿到每行的行首坐标,接下来一句话“Get the widths array of pdf,widths must appear in the font descriptor”  还有一句话“The FontBBox (font bounding box) is the smallest box that will hold each glyph”

接着一个有用的公式  : width = charwidth * Tfs *Th (charwidth from widths array)

        height = FontBBox.height  * Tfs

widths array 在哪里拿?在 字体字典中。。。大家可以好好看看Reference的第9章。。。。

通过这些可以算出pdf中每个字符的位置,如何算,行首坐标加字符宽度 同时要 把 Tc,Tw这两个操作符的影响算进来,不太了解 的同学在翻下Reference吧。。。

这样基本可以算出每个字符的位置了,高亮嘛,我们的做法是在上面铺个webView  透明的, 利用 js 回调得到手指点击的坐标回传给oc,高亮的算法嘛,大家应该都会,就是把手指划过的地方加上涂色的uiview呗。。反正我是这么弄的。。。。先写这么多吧。。等下有时间 上图。。。。可以考虑来点代码。。。。

原创粉丝点击