word转pdf 实现

作者:
淡白
创建时间:
2020-10-17 00:05:16
libreoffice

摘要:本文介绍了如何在Linux环境下生成Word文档,并且同时生成一份Word文档。作者选择了libreoffice这个库来实现这个需求。首先需要下载libreoffice的安装包,解压并安装。然后添加环境变量,将字体文件复制到指定目录。最后,可以使用soffice命令将Word文档转换为pdf格式。

需求

需要在生成word后同时生成一份word文档,由于考虑环境是linux和无外网环境.需本地生成.

实现

找到以下两种库(都差不多好像libreoffice更兼容微软的office):

安装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