这个需要经过两层转化
office --> pdf --> svg 或 png
使用说明
除了基础的PHP环境之外,还需要依赖以下组件:(2、3选一种即可)
① Libreoffice
用于将office文档转PDF
# 示例命令
soffice --headless --invisible --convert-to pdf 文档路径.doc --outdir 输出路径
② pdf2svg (预览转换为svg)
pdf2svg,用于将PDF转成svg矢量图片,以供阅读。
# 示例命令
pdf2svg PDF路径.pdf 输出SVG文件.svg
③ imagemagick (预览转换为png)
imagemagick,用于将PDF转成png图片,以供阅读。
# 示例命令
convert PDF路径.pdf PNG路径.png
Linux下安装PDF2SVG
CentOS
安装依赖
yum install -y cairo cairo-devel poppler-glib.x86_64 poppler-glib-devel.x86_64
编译安装
wget https://github.com/dawbarton/pdf2svg/archive/v0.2.3.tar.gz
tar -zxf v0.2.3.tar.gz
cd pdf2svg-0.2.3
./configure
make
make install
其他系统
sudo apt install pdf2svg
pdf2svg是否安装成功
在终端执行如下命令:
pdf2svg
如果显示如下结果,则表示安装成功:
Usage: pdf2svg <in file.pdf> <out file.svg> [<page no>]
如果显示的用法不是想上面提示的那样,则表示您安装的版本不对,请通过搜索引擎找办法进行解决。
如果提示命令不存在,则请确保程序已经安装并且加入到了系统环境变量之中。
pdf2svg测试
随便找来一个中英文内容的PDF文档,比如example.pdf
文件,通过如下命令,将PDF文档转svg:
pdf2svg example.pdf example-no1.svg
如果转换失败,请排查 pdf2svg
是否已经安装,并且配置了系统环境变量。
如果转成成功,则查看svg中是否存在乱码,存在乱码,则从系统字符编码以及中文字体两个方向入手进行着手解决。
Linux下安装Libreoffice
作为一般的原则,我们建议您通过您的特定Linux发行版推荐的方式安装 LibreOffice (比如Ubuntu的软件中心),因为一般情况下这是使得安装的软件与您的系统最佳集成的最简单方式。并且,很有可能在您安装 Linux 操作系统时 LibreOffice 默认就已经为您安装好了。
以下的示例只适用于通过 LibreOffice 官方网站下载的安装包的安装方法:
官网地址:主页 | LibreOffice 简体中文官方网站 - 自由免费的办公套件
Debian/Ubuntu系统 (.deb包):
# 安装Java
apt-get install java
# 切换到安装包所在的目录
cd /tmp
# 安装主安装程序的所有deb包
dpkg -i ./LibreOffice_X.Y.Z_Linux_x86_deb/DEBS/*.deb
# 安装中文语言包中的所有deb包 */
dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb_langpack_zh-CN/DEBS/*.deb
# 安装中文离线帮助文件中的所有deb包
dpkg -i ./LibreOffice_4.x.x_Linux_x86_deb_helppack_zh-CN/DEBS/*.deb
CentOS (.rpm包)
# 安装Java
yum install java
# 下载安装包(安装时版本不存在时需要访问 https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/ 根据版本适当修改)
cd /tmp
wget -c https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.3.6/rpm/x86_64/LibreOffice_7.3.6_Linux_x86-64_rpm.tar.gz
wget -c https://mirrors.cloud.tencent.com/libreoffice/libreoffice/stable/7.3.6/rpm/x86_64/LibreOffice_7.3.6_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
# 解压RPM包
tar zxvf LibreOffice_7.3.2_Linux_x86-64_rpm.tar.gz
tar zxvf LibreOffice_7.3.2_Linux_x86-64_rpm_langpack_zh-CN.tar.gz
# 安装RPM包
yum install -y ./LibreOffice_7.3.2.2_Linux_x86-64_rpm/RPMS/*.rpm
yum install -y ./LibreOffice_7.3.2.2_Linux_x86-64_rpm_langpack_zh-CN/RPMS/*.rpm
Libreoffice是否安装成功
在终端
执行如下命令,查看版本号,能查到版本号,即表示安装成功。
# 运行下面任意命令测试命令是否安装成功,其中版本号可能根据安装有所不同
soffice --version
/opt/libreoffice7.3/program/soffice --version
# 如果安装成功,会提示
LibreOffice 7.3.6.2 a69ca51ded25f3eefd52d7bf9a5fad8c90b87951
如果查看不到版本号或者提示命令不存在,请检查 Libreoffice 是否已经安装并且配置了 Libreoffice 的系统环境变量。
Libreoffice测试
Libreoffice
在进行文档转换的过程中,转换出来的文档可能会出现乱码,所以需要在正式使用之前,把可能存在的乱码问题进行测试和解决。
创建一个中英文
内容的.doc
文档,用如下命令将文档转成 PDF:
soffice --headless --invisible --convert-to pdf example.doc
转换成功之后,会在当前目录下生成一个 example.pdf 的文件,然后打开转换后的PDF文件,查看文件中的中文是否存在乱码等。如果存在乱码,则朝以下两个方向去解决。
-
字符编码是否支持,比如 gbk 或者 utf-8 等
-
是否缺少相应的中文字体库。如 ubuntu 下,可以使用如下的方式进行安装:
参考资料
Linux如何安装ImageMagick
Ubuntu 或 Debian
打开终端,输入以下命令更新包列表:
sudo apt-get install imagemagick
安装完成后,您可以在终端中输入以下命令来验证 ImageMagick 是否已成功安装:
magick -version
CentOS 或 Fedora
打开终端,输入以下命令更新包列表:
sudo yum install ImageMagick
安装完成后,您可以在终端中输入以下命令来验证 ImageMagick 是否已成功安装:
magick -version
Arch Linux
打开终端,输入以下命令更新包列表:
sudo pacman -S imagemagick
安装完成后,您可以在终端中输入以下命令来验证 ImageMagick 是否已成功安装:
magick -version