2012-10-25 57 views
10

我正在使用unoconv將不同的文件格式轉換爲pdf。它適用於所有格式的本地機器。但在我的Ubuntu 12.04服務器unoconv是失敗的一些格式,如xls,ppt,pptx等。但它工作正常的文檔文件。它顯示了ppt轉換的以下錯誤。unoconv無法在Ubuntu 12.04服務器上工作

$unoconv -f pdf Googling.ppt 
unoconv: UnoException during conversion in <class '__main__.com.sun.star.lang.IllegalArgumentException'>: Unsupported URL <file:///home/pythonuser/almamapper/media/library/files/c1cb92e62ce54b29a017a6e8eaa23c/Googling.ppt>: "" 
Traceback (most recent call last): 
File "/usr/bin/unoconv", line 790, in <module> 
main() 
File "/usr/bin/unoconv", line 769, in main 
convertor.convert(inputfn) 
File "/usr/bin/unoconv", line 679, in convert 
error("ERROR: The provided document cannot be converted to the desired format. (code: %s)" % e.ErrCode) 
File "/usr/lib/python2.7/dist-packages/uno.py", line 337, in _uno_struct__getattr__ 
return __builtin__.getattr(self.__dict__["value"],name) 
AttributeError: ErrCode 

我知道我必須在我的服務器上安裝openoffice-headless版本。但從這個link我瞭解到Ubuntu在一段時間之前轉而使用libreoffice而不是openoffice。所以我通過以下命令安裝了libreoffice。

apt-get install libreoffice-core libreoffice-writer libreoffice-calc

但我仍然得到同樣的錯誤。我錯過了什麼安裝?有沒有人對這個問題有任何想法?

回答

18

我通過安裝最新版本的unoconv解決了上述問題。我嘗試更新libreoffice並安裝完整版本,但都沒有幫助。

我使用的是unoconv 0.3,最新的可用版本是0.6。所以我安裝了最新的一個,它解決了這個問題。

這裏是我遵循的步驟:

  1. apt-get remove --purge unoconv(刪除舊unoconv第一)
  2. git clone https://github.com/dagwieers/unoconv (從GitHub下載最新版本unoconv的。)

  3. 現在cd到unoconv目錄並做sudo make install

注意:請做git克隆,不要下載tar文件。在我的情況下,當我下載tar時,安裝失敗。

+1

我發現這個優秀的博客(https://docs.moodle.org/31/en/Installing_unoconv)用於安裝和設置'unoconv'。 –

8

我做了apt-get install unoconv之後也有同樣的一般問題,另外apt-get install libreoffice修好了。可能您只安裝了一些libreoffice組件是它僅適用於某些格式的原因。當然,我希望它需要libreoffice-impress ppt轉換?

+0

我也試過。最後,我通過安裝最新版本的'unoconv'解決了這個問題。下面給出答案。感謝您的建議。 – Jinesh

+9

我用'unoconv'解決了文檔轉換問題('-f doc')。我確實可以在'apt-get install libreoffice-writer'後解決這個問題,謝謝@HermanHiddema。但我也需要殺死正在運行的soffice進程'killall soffice.bin',否則它不起作用。 –

+1

@AndreMiras當試圖在Ubuntu桌面上運行時,情況也是如此。我針對12.04桌面環境開發,並針對12.04服務器進行部署。如果您在LibreOffice中打開文檔,並嘗試在命令行中轉換文檔,則轉換將自動失敗。 – chucksmash