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 的嘉宾 normal : 1702363779
转换后生成的pdf只有一页半内容,原文档有好几页,大佬知道是啥问题吗