簡體   English   中英

如何在較新版本的 libreoffice 中使用 unoconv

[英]How to use unoconv with a newer version of libreoffice

我正在嘗試使用 python 將加密文檔 (doc/docx) 轉換為 PDF。

我要做的是:

  • 首先在單獨的文件夾中臨時解密它們
  • 使用 unoconv 命令行將解密后的文件轉換為 pdf:

unoconv -f pdf -eSelectPdfVersaion=1 [path-to-file]

轉換運行,但我注意到在 doc 和 docx 文件中,文檔(解密文件和 pdf)的外觀發生了變化,這不會影響原始加密文件(我通過簡單地解密文件對其進行了測試)來自 Windows 客戶端和原始解密文件)。

外觀基本上是影響頁面數量的文檔樣式的變化。 例如一個13頁的Word文檔被解密成14頁的Word文檔,並轉換成一個14頁的PDF文件。 類似地,一個 348 頁的 doc 文件被轉換為一個 330 頁的 doc 文件,然后是一個 330 頁的 PDF 文件。

我發現 Microsoft Word 和隨 Unoconv (4.3) 安裝的 LibreOffice 版本之間的樣式略有不兼容。 在做我的測試時,我注意到字體被更改為 LibreOffice 兼容的字體,它們的大小與原始字體略有不同。

我安裝了更高版本的 LibreOffice(5.1、5.3),並且在我的測試中,解密的 doc/docx 文件具有正確的格式和頁碼,但 unoconv 不使用較新版本並堅持使用 4.3,因此生成的 PDF 文件為不正確的樣式和頁碼。

我嘗試使用:

soffice --headless --convert-to pdf [path-to-file] --outdir [path-to-export-directory]

但它什么也不做。

  1. 有沒有辦法在 4.3 以外的 LibreOffice 版本中使用 unoconv?

  2. 有沒有辦法讓 --convert-to 命令與 LibreOffice 5.1 甚至 5.3 一起使用?

以下是您可以嘗試的幾個步驟: 使用卸載舊版本的 libreoffice

sudo apt remove libreoffice*

使用安裝最新版本的 libreoffice

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice

要檢查 libreoffice 是否已成功安裝,請鍵入

libreoffice --version

這應該返回版本號

接下來使用安裝 Microsoft 字體

sudo apt install ttf-mscorefonts-installer

還安裝您預計文檔可能附帶的任何其他字體依賴項

最后使用以下命令轉換為pdf。 確保沒有 libreoffice 應用程序在后台運行

libreoffice --headless --invisible --convert-to pdf "test.docx" --outdir files

您應該在名為 files 的文件夾中找到 pdf

這適用於 ubuntu 18.04.5 LTS。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM