当前位置: 首页 > 工具软件 > md-to-pdf > 使用案例 >

linux系统python md文件转pdf

姜乐语
2023-12-01

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 libSM
yum install ibus
yum 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”)

 类似资料: