我使用的是Rails 4.2,Ruby 2.2,Gem:'pdf-reader'。
我的应用程序将读取包含表格数据的pdf文件,并将其导出为CSV,我已经完成了。当我将结果与表头和表内容匹配时,它们处于错误的位置,是的因为pdf表不是一个实际的表,我们需要在这背后写一些额外的逻辑,这是我要求的。
marks.pdf的内容类似如下所示
学校名称:ABC
计划:MicroBiology Year:Second
|滚动否|数学|
| ----------- | -------- |
1000001 | 65个
| ----------- | -------- |
任何帮助都将不胜感激。
下面给出了读取PDF并导出为CSV的工作代码
class ExportToCsv
# method useful to export pdf to csv
def convert_to_csv
pdf_reader = PDF::Reader.new("public/marks.pdf")
csv = CSV.open("output100.tsv","wb", {:col_sep => "\t"})
data_header = ""
pdf_reader.pages.each do |page|
page.text.each_line do |line|
# line with characters
if /^[a-z|\s]*$/i=~line
data_header = line.strip
else
# line with number
data_row = line.split(/[0-9]/).first
csv_line = line.sub(data_row,'').strip.split(/[\(|\)]/)
csv_line.unshift(data_row).unshift(data_header)
csv << csv_line
end
end
end
end
end
由于安全原因,我无法附上原始pdf,对不起。您可以按照以下屏幕截图生成pdf。