Office(Word、PPT、execl)转pdf Windows与linux平台
Windows
工具实现
在windows或者mac平台上,直接使用office可以导出相应的pdf文件。
代码实现
或者可以使用代码,引用已经实现的三方库来实现转换。比如python中的docx2pdf,引入与使用都很简单。
from docx2pdf import convert
from time import time
if __name__ == '__main__':
start = time()
convert("file/xx.docx", "file/xx.pdf")
end = time()
print(end-start)
但是这些库一般都不支持在linux平台下,比如docx2pdf的convert源码中,就限制了只能用于win和mac平台:
def convert(input_path, output_path=None, keep_active=False):
paths = resolve_paths(input_path, output_path)
if sys.platform == "darwin":
return macos(paths, keep_active)
elif sys.platform == "win32":
return windows(paths, keep_active)
else:
raise NotImplementedError(
"docx2pdf is not implemented for linux as it requires Microsoft Word to be installed"
)
Linux
在linux平台,需要实现office转pdf的话。可以考虑开源的libreoffice和openoffice,这两者相比之下,个人感觉libreoffice更好使点。下面是我在centos7上面的安装方式。
# 下载安装的压缩包
wget https://mirrors.nju.edu.cn/tdf/libreoffice/stable/7.3.5/rpm/x86_64/LibreOffice_7.3.5_Linux_x86-64_rpm.tar.gz
# 解压
tar -zxvf LibreOffice_7.3.5_Linux_x86-64_rpm.tar.gz
# 进入安装包的目录
cd LibreOffice_7.3.5.2_Linux_x86-64_rpm/RPMS
# 安装本地软件包
yum localinstall *.rpm -y
# 安装其它依赖包
yum install cairo cups-libs libSM ibus libreoffice-headless -y
# fonts是我提前复制的windows下的字体文件夹,复制到系统的fonts下
mv fonts /usr/share/fonts/winfonts
# 修改权限,方便后面安装
chmod -R 755 /usr/share/fonts/winfonts
# 安装字体
fc-cache -fv
# 可查看已经安装的字体
fc-list
转换命令:
libreoffice7.3 --headless --convert-to pdf /home/xxx.docx
libreoffice7.3 --headless --convert-to pdf /home/xxx.pptx
libreoffice7.3 --headless --convert-to pdf /home/xxx.xlsx
libreoffice7.3 --headless --convert-to docx /home/xxx.doc
注意点:
个人测试中,发现libreoffice无法将doc格式的转换成pdf,生成的pdf是xml的源格式。即使是我使用libreoffice将doc装docx之后还是一样的结果。
作者:红雨
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步