2016-10-18 94 views
0

我上傳了1個PDF文件,然後將其轉換爲xlsx文件。我嘗試過不同的方式,但沒有得到實際的輸出.pdf2xls只顯示單行格式而不是整個文件數據。我希望整個PDF文件數據顯示在xlsx文件上。如何將pdf文件轉換爲Ruby on Rails的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([email protected](/\//)) 
    query = "libreoffice --headless --invisible --convert-to pdf " + @path_in + " --outdir " + @path_out 
    system(query) 
    file = @[email protected]_filename.slice([email protected]_filename.rindex('.')-1)+".pdf" 
    send_file file, :type=>"application/msexcel", :x_sendfile=>true 
end 

如果有任何一個使用請幫助我,任何寶石任何腳本。

+0

給出的鏈接將提供更多的細節http://stackoverflow.com/questions/23223491/how-to-convert-xls-to-pdf-via-php – BEECEE

+0

@BEECEE我想pdf格式爲XLSX,不xlsx到pdf。 –

+0

這是不可能的我猜:| –

回答

0

無法找到將PDF轉換爲xsls的選項,但可用於將PDF轉換爲圖像和PDF的API選項012鏈接 不確定是否可以更改要求以顯示其他格式的結果!

http://www.convertapi.com/

+0

你是對的,但我不使用任何api轉換xlsx文件,就像我轉換爲Excel使用「unoconv -d文件 - 格式= pdf文件名」 –

0

我將開始從PDF閱讀,將在XLSX數據很容易,如果你有問題,那問另外一個問題,並指定使用的寶石和你試過那部分。

您使用libreoffice閱讀PDF,但根據FAQ您的PDF需要混合,也許這就是問題所在。

作爲一種替代方法,您可以嘗試爲Calibre中的電子書等電子書使用一些轉換工具,但恐怕您將失去太多格式來恢復所需的數據。

一切都取決於如何在PDF中的數據結構,如果常規的文本沒有太多的格式和定位它可以像使用寶石pdf-reader

我用它在過去和我的數據有很多一樣簡單格式化 - 你會驚訝地知道PDF結構有多複雜 - 所以我必須爲每個字段指定在哪個位置準確讀取哪些數據,而不是心臟的弱點。

這裏有個簡單的例子。

require 'pdf/reader' # gem install pdf-reader 

reader = PDF::Reader.new("my.pdf") 
reader.pages.each do |page| 
    # puts page.text 
    page.page_object.each do |e| 
    p e.first.contents 
    end 
end 
相關問題