Linux系統下word文档轉成pdf的辦法

字號+ 編輯: 种花家 修訂: 人在硅谷 來源: 原创 2023-09-11 我要說兩句(1)

Java雖然被稱之爲屎山, 但在過去的20多年裡, 它也産生過不少的傑作, 其中, 利用Java爲基礎工具寫出的Libreoffice就是一個。如何利用它來實現word轉pdf呢? 下文講解

首先安裝Libreoffice這個轉換工具, 這個庫相當的大, 因爲需要安裝大量的Java屎山, 需要等待一段時間。命令如下:

# 如果是centos系列系統
pip install unoconv
yum install libreoffice*
# 如果是debian/ubuntu系列系統
apt-get install libreoffice
apt-get install unoconv

安裝完了之後用這個命令檢查一下是否安裝成功

whereis libreoffice

再測試一手, 隨便找個doc/docx文档, 用這兩個命令來轉一手試試。

libreoffice --headless --convert-to pdf:writer_pdf_Export <word文档地址> --outdir <輸出目錄地址>
libreoffice7.0 --invisible --language=zh-CN --convert-to pdf <word文档地址> --outdir <輸出目錄地址>

有的同學搞不清楚路徑是咋回事, 這裡特別說明一下, 比如你想把當前文档夾裡的test.docx輸出到同一文档夾, 那麽命令如下

libreoffice --headless --convert-to pdf:writer_pdf_Export ./test.docx --outdir ./

如果有興趣的同學可以利用php/go來調用命令轉一下, 可以實現在線word轉pdf。

轉碼時間超長, 轉換後的文档全都是亂碼和口口口符號

遇到這個問題就是Linux系統裡沒帶字體的毛病犯了。不相信的話, 你運行一下這個命令試試看, 查查有沒有中文字體

fc-list :lang=zh

打開一看, 一般都是返回空空如也的列表。

解決思路:

先找一台Windows主機, 找到c盤下的windows/fonts目錄, 把裡面所有的.ttf擴展名的文档全部打包, 上傳到Linux主機内的/usr/local/share/fonts裡

如果不喜歡把所有字體都堆放在一起, 可以先在/usr/local/share/fonts目錄下新建一個win目錄, 用以區分字體來源。

建議再帶上微軟雅黑這種通用字體, 文档名爲msyf.ttf, 找找看, 不行就在網上隨便下載一個, 一抓一大把。

接下來用mkfontscale命令編錄一下

如果提示系統找到mkfontscale命令, 那就是沒安裝

# centos系列
yum -y install ttf-mscorefonts-installer
# Debian/ubuntu系統
apt-get install ttf-mscorefonts-installer

接下來執行

mkfontscale
mkfontdir
fc-cache

再列出字體清單看看是不是安裝成功了。

fc-list :lang=zh

正常來說都會安裝成功。安裝不成功請自行debug

閲完此文,您的感想如何?
  • 有用

    1

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 防止退出linux終耑退出之後導致的nohup進程強制退出

  • ubuntu和debian安裝nginx或者tengine報錯, 找不到pcre依賴庫的解決辦法

  • 常見的web中間件請求返回狀態碼

  • linux終耑下借助awk命令查詢篩出網站access.log日志裡的統計信息

我要說說
網上賓友點評
1 樓 IP 113.132.***.39 的嘉賓 说道 : 很久前
转换后生成的pdf只有一页半内容,原文档有好几页,大佬知道是啥问题吗