gpt4 book ai didi

ruby-on-rails - 如何在 Rails 4 中将 PDF 转换为 Excel 或 CSV

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:40 25 4
gpt4 key购买 nike

我搜索了很多。我别无选择,除非在这里问这个。你们知道有 API 或 Gem/s 可以将 PDF 转换为 Excel 或 CSV 文件的在线转换器吗?

我也不确定这里是否是问这个问题的最佳地点。

我的应用程序是在 Rails 4.2 中。PDF 文件包含一个标题和一个包含大约 10 列的大表格。

更多信息:用户通过表单上传 PDF,然后我需要抓取 PDF 将其解析为 CSV 并阅读内容。我尝试使用 PDF Reader Gem 阅读内容,但结果并不乐观。

我用过:freepdfconvert.com/pdf-excel不幸的是不提供 API。 (我联系过他们)

示例 PDF

enter image description here

这段代码将 PDF 转换为文本,非常方便。 gem :pdf阅读器

 def self.parse
reader = PDF::Reader.new("pdf_uploaded_by_user.pdf")
reader.pages.each do |page|
puts page.text
end
end

现在,如果您检查附加的 PDF 示例,您会看到一些字段可能为空,这意味着我无法用空格拆分文本行并将其放入数组中,因为我无法映射数组到正确的字段。

谢谢。

最佳答案

好的,经过大量研究后,我找不到 API,甚至找不到合适的软件来执行此操作。这是我是如何做到的。

我首先使用此 API 将 PDF 中的表格提取到表格中 pdftables .它很便宜。

然后我将 HTML 表格转换为 CSV。

(这并不理想,但它有效)

代码如下:

require 'httmultiparty'
class PageTextReceiver
include HTTMultiParty
base_uri 'http://localhost:3000'

def run
response = PageTextReceiver.post('https://pdftables.com/api?key=myapikey', :query => { f: File.new("/path/to/pdf/uploaded_pdf.pdf", "r") })

File.open('/path/to/save/as/html/response.html', 'w') do |f|
f.puts response
end
end

def convert
f = File.open("/path/to/saved/html/response.html")
doc = Nokogiri::HTML(f)
csv = CSV.open("path/to/csv/t.csv", 'w',{:col_sep => ",", :quote_char => '\'', :force_quotes => true})
doc.xpath('//table/tr').each do |row|
tarray = []
row.xpath('td').each do |cell|
tarray << cell.text
end
csv << tarray
end
csv.close
end
end

现在像这样运行它:

#> page = PageTextReceiver.new
#> page.run
#> page.convert

它没有被重构。只是概念证明。你需要考虑性能。

我可能会使用 gem Sidekiq 在后台运行它并将结果移动到主线程。

关于ruby-on-rails - 如何在 Rails 4 中将 PDF 转换为 Excel 或 CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30183738/

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