hi,欢迎访问本站!
当前位置: 首页学习笔记正文

linux系统python md文件转pdf

用户投稿 学习笔记 28阅读
linux md文件转pdf

1.使用python依赖pypandoc,将md文本转成doc文件

import pypandoc //引入pypandoc依赖""":param text: 数据源文本:param outputfile: 生成文件路径"""pypandoc.convert_text(text, 'docx', 'md', outputfile= outputPath + '.docx')

2.使用LibreOffice软件,将doc文件转成pdf

首先卸载当前系统的libreoffice,因为大多数系统默认安装的都是低版本,我们要使用的是最新稳定版

yum remove libreoffice-*

在https://www.libreoffice.org/download/download/上下载最新的稳定版gz压缩包 安装java依赖

yum -y install java-1.8.0-openjdk*

然后将刚才下载的gz压缩包解压后安装

tar xvf LibreOffice_6.2.5.2_Linux_x86-64_rpm.tar.gz cd LibreOffice_6.2.5.2_Linux_x86-64_rpm/RPMS/ yum localinstall *.rpm

最后安装一些依赖

yum install cairo cups-libs libSMyum install ibusyum install libreoffice-headless

在命令行输入,显示帮助文档就没问题了

libreoffice -help 解决中文乱码问题,修改系统语言来支持中文 执行命令:yum groupinstall "fonts"安装成功后,打开vim /etc/locale.conf按键 i 进入编辑模式, 把内容改为LANG="zh_CN.UTF-8"wq 存盘然后重启服务器reboot之后也可以支持中文转换了

转换命令

libreoffice6.2 --headless --convert-to pdf /root/4321.docx

python代码1

def doc2pdf_linux(doc): """ convert a doc/docx document to pdf format (linux only, requires libreoffice) :param doc: 路径文件 """ cmd = 'libreoffice6.2 --headless --convert-to pdf'.split() + [doc] p = subprocess.Popen(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) p.wait(timeout=10) stdout, stderr = p.communicate() if stderr: raise subprocess.SubprocessError(stderr)

python代码2

import os"""convert a doc/docx document to pdf format (linux only, requires libreoffice):param outdir: 文件输出路径"""os.system(“libreoffice --invisible --convert-to pdf --outdir /home/wanxing/Desktop/ /home/wanxing/Desktop/demo.docx”)
标签:
声明:无特别说明,转载请标明本文来源!
发布评论
正文 取消