5

我们在 Web 应用程序中使用 lucene 来搜索大量 PDF 文档。

工作流程是这样的:

  1. 用户输入搜索词

  2. 向用户呈现搜索结果列表。

  3. 每个搜索结果代表一个 PDF 文档,并向用户显示在哪个页面上找到了搜索词。这些页面中的每一个都表示为一个超链接。

  4. 如果用户现在点击这样的超链接,他会直接跳转到那个页面。

  5. 但是现在用户遇到了搜索词没有在页面上突出显示的问题。因此,用户必须自己查看才能在页面上找到搜索词。

我们想要的是一种在 PDF 的特定页面上突出显示搜索词的方法。

Acrobat Reader的打开参数允许搜索 PDF 文档(带有点击突出显示)或跳转到特定页面。但是我们需要的两个参数的组合不起作用。

有谁知道如何跳转到页面并突出显示 PDF 文档中的搜索词?我查看了 Acrobat SDK,但看不到我们如何使用它(它的文档非常详细)。

4

3 回答 3

2

acrobat 使用插件来隐藏术语,并且需要一个 fdf 流来指示要隐藏的单词。请参阅此处以获取指针:

support.dtsearch.com/dts0152.htm

更新:

假设您知道要突出显示的页面上的 page# 和 word#,这是一种方法:

在网页上:

<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 将出现在框架中,它将显示工具栏,隐藏导航窗格和状态栏并将页面调整为水平。然后它将查询网站以获取用于高亮的 xfdf 数据: http ://example.com/hilite.aspx?hilite=8e3302ee-ff88-41ee-bdfb-9e8df87cc3ad

在这里,我使用了之前在会话中保存的带有 hilite xfdf 值的 guid 键。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 页上从位置 3583 开始的 5 个字符。(注意:尽管相似,xfdf 不是真正的“XML”)

请注意,acrobat reader 必须在首选项中选中“从外部突出显示服务器启用搜索突出显示”选项。

于 2010-06-21T19:41:14.103 回答
0

抱歉可能不是答案,但解决方法可能是将 PDF 转换为 html 并使用 Lucene 荧光笔(类似于 Google 所做的)

于 2010-05-09T10:35:07.930 回答
0

您必须编写一段 Javascript 代码才能获得您正在寻找的行为。

于 2010-05-24T19:02:13.460 回答