gpt4 book ai didi

ruby - 如何在 Ruby 中解析 pdf

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:36 26 4
gpt4 key购买 nike

我一直在尝试一个简单的 Ruby 程序来解析一个简单的 pdf 文件并提取我感兴趣的文本。我发现 pdf-reader对于 pdf 文件解析来说是非常好的 gem。我已经阅读了该 gem 中给出的示例和一些 tutorials围绕那个。

我已经尝试了回调方法,并且能够从我的 pdf 文件中获取所有文本。但我不理解某些回调参数背后的概念。

例如,如果我的 pdf 有一个包含 3 列和 2 行的简单表格。 (标题行值为姓名、地址、年龄),第一行值为(Arun、Hoskote、22),当你在 ruby​​ 脚本之后运行 ruby​​

receiver = PDF::Reader::RegisterReceiver.new
reader = PDF::Reader.new("Arun.pdf")
reader.pages.each do |page|
page.walk(receiver)
receiver.callbacks.each do |cb|
puts cb.inspect
end
end

它打印了一系列回调,其中一些有趣的回调 show_text_with_positioning 如下所示

{:name=>:show_text_with_positioning, :args=>[["N", 5, "am", -4, "e"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["Ad", 6, "d", 3, "ress"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["Age"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["Ar", 4, "u", 3, "n"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["H", 3, "o", -5, "sk", 9, "o", -5, "te"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}
{:name=>:show_text_with_positioning, :args=>[["22"]]}
{:name=>:show_text_with_positioning, :args=>[[" "]]}

从上面的回调中,args 代表什么相对于 pdf 文件?如果在此示例中,我只想在此处提取名称值“Arun”(任何值都可以出现在这里)或年龄值,即“25”(任何值都可以出现在此处),我该如何在 ruby​​ 程序中执行此操作?是否有任何 pdf 解析器 API 或 Ruby API 可以从 pdf 文件中仅获取一个“感兴趣的”值?

我如何编写一个 Ruby 程序来访问我感兴趣的特定回调,它会给我想要的文本?

最佳答案

如果你特别只想要文本,你可以这样做(但可能使用不同的流作为文本的目的地):

receiver = PDF::Reader::TextReceiver.new($stdout)
PDF::Reader.file("Arun.pdf", receiver)

获得文本后,您可以使用正则表达式或其他任何方式从中获取您想要的特定值。

关于ruby - 如何在 Ruby 中解析 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19279855/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com