2012-10-31 95 views
0

我有一個應用程序,我想使用libreoffice批量轉換文件爲html。我有以下方法:在rails上運行soffice(libreoffice或openoffice)從ruby中的命令行運行

def set_versioned_odt 
    condition = %x(soffice --invisible --convert-to html /path/to/file.odt --outdir /path/to/dir/) 

    if condition 
    Rails.logger.info "This has been finished" 
    else 
    Rails.logger.info "This failed..." 
    end 

當我運行在應用此方法。它將返回一條失敗的聲明;然而,如果我在rails控制檯中運行這個命令,soffice會正確處理。有誰知道我在軌道應用程序中做錯了什麼?

謝謝。

+0

你可以嘗試convert_office gem,https://github.com/amardaxini/convert_office – Amar

回答

0

最好的猜測是soffice不在路徑中。嘗試指定soffice的完整路徑。

+0

我試過了,然後使用系統方法時它返回false。這很奇怪,因爲它在rails控制檯中工作而不是在應用程序中。 – Kyle

+0

什麼操作系統?是作爲不同用戶運行的應用程序。如果linux是像SELinux那樣阻礙的話? – Doon

+0

目前我在Mac OSX 10.8上。 我檢查了應用程序的Path變量,它似乎並不存在 - > ENV [「PATH」]。我將它添加到enviroment.rb文件中,並得到一個錯誤信號6 - > SIGIOT 6. – Kyle