我们在网络应用程序中使用lucene来搜索大量PDF文档。
工作流程如下:
用户输入搜索字词
向用户显示搜索结果列表。
每个搜索结果代表一个PDF文档,并向用户显示找到搜索词的页面。这些页面中的每一个都表示为超链接。
如果用户现在点击这样的超链接,他会直接跳转到该页面。
但现在用户遇到的问题是搜索字词未在页面上突出显示。因此,用户必须自己查找页面上的搜索词。
我们想要的是一种在PDF中的特定页面上突出显示搜索词的方法。
Acrobat Reader的open parameters允许搜索PDF文档(带突出显示)或跳转到特定页面。但是这两个参数的组合 - 我们需要 - 并不起作用。
有没有人知道如何跳转到某个页面并突出显示PDF文档中的搜索词可能有效? 我看了一下Acrobat SDK,但没看到我们如何使用它(这是非常详细的文档)。
答案 0 :(得分:2)
acrobat使用插件来添加hilite术语,并且需要fdf流来指示hilite的单词。 请参阅此处获取指示:
support.dtsearch.com/dts0152.htm
更新
假设您知道页面上的页面#和单词#到hilight,这是一种方法:
在网页上:
<iframe id="acroframe" src="pdfpage/example.pdf#xml=http://example.com/hilite.aspx?hilite=8e3302ee-ff88-41ee-bdfb-9e8df87cc3ad&toolbar=1&navpanes=0&statusbar=0&view=FitH">
</iframe>
PDF将出现在框架中,它将显示工具栏,隐藏navpane&amp;状态栏和适合页面到水平。然后它将查询网站以获取用于hilighting的xfdf数据:http://example.com/hilite.aspx?hilite=8e3302ee-ff88-41ee-bdfb-9e8df87cc3ad
在这里,我使用了一个guid键,我以前在会话中使用hilite xfdf值保存。 hilite.aspx页面将返回类似以下内容的文档中的hilite单词:
<XML>
<Body units=characters color=#ff00ff mode=active version=2>
<Highlight>
<loc pg=15 pos=3583 len=5>
</Highlight>
</Body>
</XML>
这将是第15页的hilight 5 chars,从位置3583开始。(注意:xfdf不是真正的“XML”,尽管有相似之处)
请注意,acrobat reader必须在首选项中选中“启用外部突出显示服务器的搜索突出显示”选项。
答案 1 :(得分:0)
抱歉,这可能不是一个答案,但解决方法可能是将PDF转换为html并使用Lucene荧光笔(类似于Google所做的)
答案 2 :(得分:0)
您必须编写一段Javascript来获取您正在寻找的行为。