PDF之itextsharp的使用开发历程3

来源:互联网 发布:matlab生成无标度网络 编辑:程序博客网 时间:2024/06/05 15:54

由于itextsharp为开源库,且网络上相关资源较多,同时支持java及微软.Net平台开发的原因,所以你可以搜到很多这方面的信息,但是你会发现在百度上搜索到的很多相关资料都是以新建 PDF 的实例比较多,而真正直接对现有 PDF 文档进行二次处理操作相关的则少之又少,而在谷歌上则可以找到较多操作相关的资源,无论是创建也好,操作也罢,最好的开发运作方式就是上这里:http://stackoverflow.com/questions/tagged/itext,还有这里:http://itextpdf.com/,同时结合我们的itext  API使用说明档(itext只为Java类库写了API档,而没有.Net的版本,但其实大同小异,不影响使用)来进行开发,Java版API你可以在我分享出来的百度网盘上找到,我这边目前只有第一版(itext in action 1st)跟第二版(itext in action 2nd),目前分享的是第二版,封面如下图示,链接: http://pan.baidu.com/s/1sjsVyWl, 密码: x4r9,itextsharp类库可以在我的第二篇中找到答案,你也可以直接跟我联系索取。邮箱:hjacto@163.com;   

QQ: 3045918815  

先前说了那么多有关 itext 在PDF上的强大的应用功能,现在就来谈谈他目前的一些劣势(纯属个人见解,不喜勿喷,多多指教)

1、itext 在对 PDF 的实时操作方面能力较弱,无法支持 PDF 文档的实时渲染,无法实现 PDF 文档即时的显示,这样的限制使得一些需要看到 PDF 实时操作状态的功能不能获得良好的用户体验,甚至导致功能无法实现,在这种情况下,我们为了满足某些特定功能可能就需要再引入其他第三方的类库了,这种类库的功能我们不需要太多,只要可以实现PDF的快速渲染同时兼具常规的PDF阅读需求的操作功能函数即可,还有关键的一点是他可以很好地跟我们的 itext 类库进行良好的互动,有够丰富的API接口可以调用,把这不同的类库运用在一起实现独立而又一体的强大功能,要找这样接口丰富,兼容性高,简单易用,资源多,且开源的类库实在是一件头疼的事情,只为了要达到在二次操作PDF的过程中,用户可以同时实时地看到PDF的操作结果,真的是费了九牛二虎之力,国内几乎找不到,唯有求谷歌了,对于看到英文渐渐厌烦的我,着实是件头疼的事呀,点开了无数个链接似乎都没有满意的结果,感觉无爱了,所有找到的结果要么就是泛泛之谈(毫无相关资料),要么就是要使用费用极高的类库,有几百到上千的都有,可是真心不想花这个钱,只想再多花点精力也不愿再花费更多,过去了几个星期,真是又烦又累。

2、接下来的日子里,找了个PDF阅读的小源码,一个VB的实例,我是菜鸟级的C#,看起来诸多困难,实例中采用另外的开源库,不止一个,稍微有些晦涩难懂,但还是努力坚持一点一点研究看看,其基本原理就是用另外一个类库把加载到内存的PDF转成实时的图片,而每个PDF页就是一个图片,所以当PDF文档页数多的时候生成的PDF也会很多,没操作一步,不管是放大缩小、翻页或者页面调整都需要等待其转换为本地图片文件再通过图片控件实时显示出来,这样的做法效率不高,且只能同时间浏览单页,无法快速浏览多页或者多页面进行快速缩放等,但似乎目前就只能这样了。

3、依据以上的方式实现效率极低且软件复杂度大大提高,对于15页以内的PDF显示处理基本可以满足,以上则会使界面卡死,唯有作为耗时事件处理采用多线程,大大降低了用户体验(测试第一版如下图,采用类库包含:O2S.Components.PDFRender4NET.dll:PDF转图片格式类库、itextsharp.dll),测试加载4页的PDF文档效果马马虎虎,软件主要实现现有PDF的重整组合,功能包含:(1)在现有PDF中插入本地图片(既可以作为PDF页插入也可以是直接图片插入到某一页)(2)在现有PDF中插入本地PDF文档(相当于PDF合并的功能)(3)在现有PDF中插入空白PDF页(4)从在现有PDF中删除某些页面(5)对现有PDF中页面进行单页或多页旋转(6)从现有PDF中提取单页或多页另存为新档(7)调整现有PDF页面排序;以上操作针对未做加密的文档,如果需对加密档进行这些功能操作则需要先输入密码授权后才可以(也可以通过一个后门标志位直接避开已经做了双重加密的文档)


4、为取得高效的显示及操作效果,获得较佳的用户体验,建议可以配合福昕的一个PDF阅读控件:FoxitReader_AX_Pro.ocx,可以实现体积更小、效率更高、更快速地显示操作的即时效果,其API也是相当丰富,可以满足基本的阅读功能,效率也比Adobe高很多。

更多PDF操作项目实例及软件可以跟大家探讨、分享,有兴趣的朋友可以关注我的博客,有PDF相关需求也可以来找我哦,可以随时跟我交流,邮箱:hjacto@163.com;   QQ: 3045918815 


0 0
原创粉丝点击