问题标签 [pdf-extraction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何使现有的pdf可编辑?安卓应用
我正在用 android 制作一个应用程序。我可以编写文本并创建一个新的 PDF,也可以阅读现有的 PDF。但我没有得到编辑现有 PDF 的解决方案。在我的应用程序中编辑 PDF 是我必须实现的目标。
我试图将它转换为字符串,但它是编码形式。已经搜索了很多但我不想使用任何付费库或 jar。
java - 如何自动将pdf表单字段导出到xml
我有一个包含表单字段的文件,需要将数据自动pdf
导出到xml
文件中。这是我为测试创建的示例表单的屏幕:
注意:通过单击使用 Acrobat Professional手动导出它Tools > Form > Export Form Data
并最终选择 xml 扩展名进行文件输出,效果很好。这是我手动导出时得到的结果:
但是,我需要自动化它,例如使用python 脚本、Java 实现或一些命令行工具。我可以使用哪些库或工具将表单字段数据导出到任何想法xml
?该工具或库应该是开源的,我可以将其集成到我的工作流程中。
我已经尝试过pythonpdfminer
库,它帮助我导出pdf文件的静态部分(如Static form header
,First name:
和Last name:
):但是如何导出表单字段数据(在我的情况下是表单字段的内容first_name
和last_name
)?
编辑:请随时在此处下载 sample.pdf 文件。
python - python - 从网页中提取 pdf 并转换为 html
我的目标是拥有一个可以访问特定网页的 python 脚本,提取每个页面上文件名中包含特定单词的所有 pdf 文件,将它们转换为 html/xml,然后通过 html 文件从 pdf 中读取数据表。
到目前为止,我已经导入了 mechanize(用于浏览页面/查找 pdf 文件)并且我有 pdfminer,但是我不确定如何在脚本中使用它来执行它在命令行上执行的相同功能。
完成我的任务最有效的库组是什么,您建议如何处理每个步骤?如果这对于stackoverflow来说太具体了,我深表歉意,但是我在使用谷歌搜索和稀疏文档来拼凑如何编写代码时遇到了麻烦。谢谢!
编辑:所以我决定在这个上使用 Scrapy。到目前为止我真的很喜欢它,但现在我有一个新问题。我已经定义了一个 PDFItem() 类以与我的蜘蛛一起使用,其中包含字段标题和 url。我有一个选择器,它可以抓取我想要的所有链接,我想浏览这些链接并为每个链接创建一个 PDFItem。这是我下面的代码:
url 行效果很好,但我真的不知道如何为标题做同样的事情。我想我可以只在顶部执行查询,但在选择器的末尾添加“/text()”,但这似乎过分了。有没有更好的方法来遍历链接数组中的每个链接对象并获取文本和 href 值?
pdf - 如果识别 PDF 文档中的文本结构如此困难,那么 PDF 阅读器是如何做到如此出色的呢?
我一直在尝试编写一个简单的控制台应用程序或 PowerShell 脚本来从大量 PDF 文档中提取文本。有几个库和 CLI 工具可以做到这一点,但事实证明,没有一个能够可靠地识别文档结构。我特别关心文本列的识别。即使是非常昂贵的 PDFLib TET 工具也经常混淆相邻两列文本的内容。
经常注意到 PDF 格式没有任何列的概念,甚至没有单词。SO上类似问题的几个答案提到了这一点。这个问题是如此之大,以至于它甚至值得学术研究。这篇期刊文章指出:
PDF 文件中的所有数据对象都以面向视觉的方式表示,作为一系列运算符...通常不传达有关更高级别文本单元(如标记、行或列)的信息——有关此类单元之间边界的信息只能通过空格隐式使用
因此,我尝试过的所有提取工具(iTextSharp、PDFLib TET 和 Python PDFMiner)都无法识别文本列边界。在这些工具中,PDFLib TET 表现最好。
然而,SumatraPDF 是一款非常轻量级的开源 PDF 阅读器,以及许多其他类似的工具,可以完美地识别列和文本区域。如果我在其中一个应用程序中打开文档,选择页面上的所有文本(甚至使用 CTRL+A 选择整个文档),将其复制并粘贴到文本文件中,文本将以正确的顺序呈现,几乎完美无瑕。它偶尔会将页脚和页眉文本混合到其中一列中。
所以我的问题是,这些应用程序如何才能完成看似如此困难的事情(即使对于 PDFLib 等昂贵的工具)?
编辑 2014 年 3 月 31 日:值得一提的是,我发现 PDFBox 在文本提取方面比 iTextSharp 好得多(尽管有定制的策略实施),而且 PDFLib TET 比 PDFBox 略好,但它相当昂贵。Python PDFMiner 是无望的。我见过的最好的结果来自谷歌。可以将 PDF(一次 2GB)上传到 Google Drive,然后以文本形式下载。这就是我正在做的事情。我编写了一个小实用程序,可以将我的 PDF 拆分为 10 页文件(Google 只会转换前 10 页),然后在下载后将它们缝合在一起。
编辑 2014 年 4 月 7 日。取消我的最后一个。最好的提取是通过 MS Word 实现的。这可以在 Acrobat Pro 中自动执行(工具 > 动作向导 > 创建新动作)。Word 到文本可以使用 .NET OpenXml 库实现自动化。这是一个可以非常巧妙地进行提取(docx 到 txt)的类。我最初的测试发现,MS Word 转换在文档结构方面要准确得多,但是一旦转换为纯文本,这一点就不那么重要了。
pdf - PDF中的超链接检测
我有一些包含 URL 和 mailto 形式的超链接的 PDF。现在是否有任何方法或工具(可能是第 3 方)从 PDF 中提取超链接元信息,如坐标、链接类型和目标地址。非常感谢任何帮助。
我已经尝试过使用 iText 和 PDFBox,但没有取得重大成功,甚至一些第三方软件也没有为我提供所需的输出。
我使用 iText 在 Java 中尝试了以下代码
ruby - 从学术文章中提取参考文献的 RUBY pdf-extract gem 不起作用?
我是 ruby 及其 pdf-extract gem 的新手。在为 64 位安装了 ruby 并安装了相关的开发工具包之后,我已经安装了 pdf-extract,代码如下:
gem install pdf-extract
通过查看来自网站https://github.com/CrossRef/pdfextract的快速示例,
我努力了
pdf-extract 提取--references C:/dnm1.pdf
执行上面的代码时,出现如下错误:
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/commander/runner.rb: 384:in
block in require_program': program version required (Commander::Runner:: CommandError) from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/runner.rb:383:in
each' 来自 C:/Ruby200-x64/lib/ruby/ gems/2.0.0/gems/commander-4.2.0/lib/command er/runner.rb:383:inrequire_program' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/runner.rb:51:in
run!来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/delegates.rb:8:inrun!' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/import.rb:10:in
块中的' C:/Ruby200-x64/lib/ ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:inrequire ': 126: The specified module could not be found. - C:/Ruby200-x64/lib/ruby/gem s/2.0.0/gems/libsvm-ruby-swig-0.4.0/ext/libsvm.so (LoadError) from C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:5 5:in
require' 来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/libsvm-ruby-swig-0.4.0/lib /svm.rb:1:in<top (required)>' from C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:5 5:in
require' 来自 C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:5 5:inrequire' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/refer ences/score.rb:1:in
'来自 C:/Ruby200-x64/lib/ruby /gems/2.0.0/gems/pdf-extract-0.1.1/lib/references/references.rb:3:inrequire_relative' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/refer ences/references.rb:3:in
' 来自 C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/pdf-e xtract.rb:10:inrequire_relative' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/pdf-e xtract.rb:10:in
' 来自 C:/Ruby200-x64/ lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/bin/pdf-e xtract:5:inrequire_relative' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/bin/pdf-e xtract:5:in
'从 C:/Ruby200-x64/bin/pdf-extract:23:in 从 C:/Ruby200-x64/bin/pdf-extract:23:in 加载
我已经通过网络检查了与 pdf-extract 相关的问题,但找不到太多有用的东西。我究竟做错了什么?
pdf - 从 PDF 中获取所选区域的 X、Y 坐标
我正在尝试从 PDF 的特定部分中提取文本。如果我知道该区域的 X、Y 坐标,我就可以提取文本。但我无法从 PDF 中获取所选区域的坐标。如果有人已经尝试过,请帮助我。
pdfbox - 如何从pdf文件中提取段落并存储其位置?
我将使用 PDFBox 库提取 PDF 文件的内容。内容要逐段处理,每段我都需要它的位置进行后续处理。使用以下代码,我可以提取输入 PDF 的全部内容:
我有两个问题:
- 我不知道如何逐段提取内容。
- 不知道如何存储一个段落的位置以便后续处理(例如高亮等)
谢谢。
ruby - 在 Macports / Mac OS X Yosemite 上安装 pdf-extract 的 gem
我正在尝试在 Mac OS X Yosemite 上安装pdf-extract 。我认为最好不要使用/usr/bin/ruby
Yosemite 附带的版本,所以我使用的是 Macports 版本/opt/local/bin/ruby
(ver2.1.3)。
安装似乎很顺利:
在最后一个命令结束时,消息似乎表明一切顺利:
但是,当我尝试运行 pdf-extract 时,遇到了以下错误:
我的问题是我是否做得gem install
正确(因此它可能是一个错误pdf-extract
)或者我是否在安装(或文件路径)中搞砸了一些东西。
旁注:安装文件夹最初是$HOME/Dropbox/code/ruby/pdf-extract
,但我执行了mv pdf-extract /tmp
(以缩短错误消息中的文件路径)并重新运行安装脚本(错误消息基本保持不变)。我也尝试替换./pdf-extract
为,/opt/local/bin/ruby2.1 pdf-extract
但没有帮助。
itext - 无法使用 itext 获取文本的真实字体?
我一直在尝试从 pdf 中提取文本,并且由于 itext 我可以提取整个文本。但是,我正在尝试检测标题的字体,并且通过使用此信息,我计划仅提取两个特定标题之间的那些文本。例如,在一篇科学论文中,我只想提取“介绍”部分。为此,我申请了以下链接。
但是,它似乎为所有单词提供了相同的字体类型,当我手动检查时这是不正确的(将粘贴复制到 word 文档使我能够看到不同的字体)。这是我写的代码。
以及我为提取策略创建的类。
由于这段代码,我得到了这样的结果。它们都有字体类型 4。
...