最近做了一个Lucene的项目,主要的功能是输入公司名,然后搜索与该公司有关的报告。这个用Lucene实现并不难,但是客户要求在打开PDF时要高亮显示搜索的关键字。在客户提出这个需求的时候,我们都觉得可能性不大,因为我们要写一个程序来控制Adobe Reader的输出,除非Adobe提供接口。在经过一番调查取证之后,还真是应了那句老话:没有做不到,只有想不到。还真有一个方法可以实现。有一个PDFBox的第三方包中含有一个Hightlight类,用这个类就可以实现我们要的高亮显示功能,它的原理是生成一个临时文件,这是一个xml文件,用来记录要高亮显示文本在PDF文档中的位置,通过这个文件我们就可以很容易地实现高亮功能。在实现高亮功能的过程中,需要为每一个PDF文件生成一个临时文件,所以处理好临时文件的命名和存放是一个问题。然后需要注意的问题是,adobe reader默认不支持高亮显示,我们需要设置他的高亮显示属性为TRUE,具体在哪设置我不记得了。废话不多少了,斗地主了。

本Blog文章除特别声明之外皆为原创文章,欢迎转载,转载请注明: 转载自JSSAY'S BLOG

本文链接地址: http://www.jssay.com/blog/index.php/2009/12/08/pdf%e4%b8%ad%e6%96%87%e6%9c%ac%e9%ab%98%e4%ba%ae%e6%98%be%e7%a4%ba/


随机日志

标签:,

发表评论