word转pdf 实现
- 作者:
- 淡白
- 创建时间:
- 2020-10-17 00:05:16
- libreoffice
摘要:本文介绍了如何在Linux环境下生成Word文档,并且同时生成一份Word文档。作者选择了libreoffice这个库来实现这个需求。首先需要下载libreoffice的安装包,解压并安装。然后添加环境变量,将字体文件复制到指定目录。最后,可以使用soffice命令将Word文档转换为pdf格式。
需求
需要在生成word后同时生成一份word文档,由于考虑环境是linux和无外网环境.需本地生成.
实现
找到以下两种库(都差不多好像libreoffice更兼容微软的office):
- OpenOffice
- libreoffice
- 还有几种远程调用的 不适用就pass掉了
安装libreoffice
最终经过测试选择了libreoffice这个库
下载地址
需要(版本自定)
LibreOffice_7.0.2_Linux_x86-64_rpm_sdk.tar.gz
LibreOffice_7.0.2_Linux_x86-64_rpm.tar.gz
俩包和字体文件,同时需要安装java环境.
下载下来后解压两个压缩包,然后进到目录有个RPMS
文件夹进去执行 yum localinstall *.rpm
俩文件夹都需要去安装
添加环境变量
vim /etc/profile
在最后加入
export LibreOffice_PATH=/opt/libreoffice7.0/program
export PATH=\$LibreOffice_PATH:$PATH
然后保存,执行生效命令
source /etc/profile
添加字体
把字体复制到 /usr/share/fonts/Fonts
dockerfile
FROM adoptopenjdk/openjdk11:jdk-11.0.8_10-centos-slim
#添加libreoffice包
RUN echo "Asia/Shanghai" > /etc/timezone
ADD /LibreOffice /usr/libreoffice
ADD /LibreOfficeSdk /usr/libreoffice/sdk
WORKDIR /usr/libreoffice/RPMS
#安装依赖和libreoffice
RUN yum localinstall *.rpm -y
WORKDIR /usr/libreoffice/sdk/RPMS
RUN yum localinstall *.rpm -y
ENV LibreOffice_PATH=/opt/libreoffice7.0/program
ENV PATH=$LibreOffice_PATH:$PATH
RUN yum update -y
RUN yum install ibus -y
#安装字体
ADD ./Fonts /usr/share/fonts/Fonts
WORKDIR /usr/libreoffice
转换命令
把当前目录的1.docx转换成pdf
soffice --headless --convert-to pdf 1.docx