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.交流群: PHP+JS聊天群

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

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

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

  • Linux批量刪除指定文件的時候報錯 xargs: unterminated quote

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