如何在ruby on rails上将pdf文件转换为xlsx文件

时间:2016-10-18 06:01:39

标签: ruby-on-rails ruby pdf ubuntu-14.04 xlsx

我上传了1个PDF然后将其转换为xlsx文件。我尝试了不同的方法,但没有得到实际的输出.pdf2xls只显示单行格式而不是整个文件数据。我希望整个PDF文件数据显示在xlsx文件中。

我有一种方法将PDF转换为xlsx但不能显示正确的格式。

def do_excel_to_pdf
    @user=User.create!(pdf: params[:pdf])
    @path_in = @user.pdf.path
    temp1 = @user.pdf.path
    @path_out = @user.pdf.path.slice(0..@user.pdf.path.rindex(/\//))
    query = "libreoffice --headless --invisible --convert-to pdf " + @path_in + " --outdir " + @path_out
    system(query)
    file = @path_out+@user.pdf.original_filename.slice(0..@user.pdf.original_filename.rindex('.')-1)+".pdf"
    send_file file, :type=>"application/msexcel", :x_sendfile=>true
end

如果任何一个使用请帮助我,任何宝石任何脚本。

2 个答案:

答案 0 :(得分:0)

无法找到从PDF转换为xsls的选项,但无法使用可用于将PDF转换为图像和PDF转换为powerpoint的API选项(下面给出的链接) 不确定你是否可以改变要求以其他格式显示结果!!

http://www.convertapi.com/

答案 1 :(得分:0)

我首先从PDF中读取,在XLSX中插入数据很容易,如果您遇到问题,请提出另一个问题,并指定您使用的宝石以及您为该部分尝试的内容。

您使用libreoffice来阅读PDF,但根据FAQ您的PDF需要混合,也许这就是问题所在。

作为替代方案,您可以尝试使用一些转换工具,例如Caliber中的电子书,但我担心您会丢失太多格式以恢复所需的数据。

全部取决于PDF中数据的结构,如果没有太多格式化和定位的常规文本就像使用gem pdf-reader

一样简单

我过去使用它并且我的数据有很多格式 - 你会惊讶地知道PDF结构有多复杂 - 所以我必须为每个字段指定哪个位置确切地读取哪些数据,不适合胆小的人。

这是一个简单的例子。

'\n}}}'