使用itext从PDF中提取文本和锚点信息

时间:2014-07-10 04:34:51

标签: anchor itext

我正在寻找一种方法来使用itext提取文本以及锚信息。

例如

PDF背景:您可以访问我们的网站XYZ,并执行某些操作。

输出应该是:您可以访问我们的网站,XYZ(www.google.com),并做一些事情。

基本上我正在尝试使用目标链接信息生成文本文件。

此致 Lalit Kumar

1 个答案:

答案 0 :(得分:2)

您可以在PDF文件中看到的静态文本使用PDF语法存储在内容流中,如Adobe的成像模型中所述。

您可以在PDF文件中看到的互动功能使用轮播对象系统(COS)存储在所谓的注释词典中的页面内容流之外。

您可能会假设当您看到itextpdf.com之类的内容时,PDF中会出现类似<a href="http://itextpdf.com/">itextpdf.com</a>的内容。

没有。

会有类似的东西:

/F1 12 Tf
(itextpdf.com )Tj

包含页面/Contents的内容流中的某个位置。

当您检查页面的/Annots时,您会发现类似的内容:

<<
  /A<<
    /S/URI
    /URI(http://itextpdf.com)
  >>
  /Subtype/Link
  /C[0 0 1]
  /Border[0 0 0]
  /Rect[36 803.52 98.03 814.62]
>>

作为PDF文件中的对象。

如果要从文档中提取所有链接和相应的文本,则需要遍历所有页面词典,获取/Annots,检查哪些注释属于子类型/Link,获取动作(/A)和坐标(/Rect)。

要知道哪个文本与文本对应,您需要使用带有&#34;区域文本的#ext文本解析器类&#34;策略并在/Rect条目定义的位置提取文本。

如评论中的GPRathour所示,您应该展示您尝试过的内容。如果你的下一个问题是&#34;你可以提供代码样本吗?&#34;你的问题可能会被低估或关闭。如果你研究http://itextpdf.com上的例子,你会发现其中一些会让你非常接近解决方案。