Python多平台word转pdf

最近遇到一个需求,用户从网页端上传word文件,之后服务端开一个线程,将上传的word文件转换为pdf文件。

查阅了一些资料:

发现win平台上的实现确实比较容易,但是linux和mac上就不太友好了。

1. pandoc + pypandoc

1.1 安装 pandoc

https://github.com/jgm/pandoc/releases 处即可下载。

1.2 安装 pypandoc

pip install pypandoc -i https://mirrors.aliyun.com/pypi/simple

1.3 安装LaTeX

如果平台本身没有pdf转换的引擎,那么在转换的时候会报错:

RuntimeError: Pandoc died with exitcode “47” during conversion: pdflatex not found. Please select a different --pdf-engine or install pdflatex

所以我们要额外安装 pdflatex

1.3.1 在 Windows上

Texlive官网是 https://tug.org/texlive/ 因为他是国外的速度比较慢,所以使用中科大镜像列表。地址是:

https://mirrors.ustc.edu.cn/CTAN/systems/texlive/Images/

下载完毕后,使用管理员身份运行install-tl-windows.bat,根据提示进行安装即可。

tex -v
latex -v
xelatex -v
pdflatex -v

来获取安装的TeX的环境信息!如果看到的版本信息能够正常输出,那么TeX Live的安装就是成功的!

在windows开始菜单里,找到 TexWords editor 编辑器,输入如下文本,点击绿色箭头

1.3.2 在 Linux 上
sudo apt install texlive
brew install basictex

2. Libreoffice

https://zh-cn.libreoffice.org/download/libreoffice/

(安装完毕后配置环境变量)

import os
import platform


def word2pdf(file_path, output_path):
    # libreOfice 下载地址:
    pf = platform.system()
    if "Windows" in pf:
        command = r'"C:\Program Files\LibreOffice\program\soffice.exe"'
    elif "Linux" in pf:
        version = r'6.4'
        command = f'libreoffice{version}'
    else:
        raise Exception("不支持的系统平台")

    os.system(f"{command} --headless --convert-to pdf {file_path} --outdir {output_path}")


if __name__=="__main__":
    word2pdf(r"C:/Users/fang/Documents/ssh登录日志_2022-05-29.docx", r"C:/Users/fang/Documents/")
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Python列表是一种非常常用的数据结构,它允许我们存储多个元素,并且可以根据需要进行增删改查操作。而PDF是一种常见的文件格式,用于存储和传递文档信息。那么如何将Python列表保存为PDF文件呢? 有几种方法可以实现这个目标。一种方法是使用第三方库,如ReportLab或fpdf。这些库提供了创建、修改和保存PDF文件的功能。你可以通过安装这些库,然后在Python代码中调用相关函数来实现。 另一种方法是使用Python的内置功能,如使用PIL库或matplotlib库将列表中的数据绘制成图表,然后将图表保存为PDF格式。这种方法可以很方便地将列表中的数据可视化,并保存为PDF文件用于展示或分享。 除了上述方法之外,还可以使用第三方软件,如Microsoft Word或Adobe Acrobat,将Python列表的输出复制到这些软件中,并将其保存为PDF格式。这种方法适用于需要更多的格式控制和编辑需求。 总而言之,Python列表可以通过使用第三方库或内置功能将其保存为PDF文件。根据具体需求,你可以选择合适的方法来实现这一目标。 ### 回答2: Python列表是一种有序的、可变的数据结构,它可以容纳任意类型的元素。在Python中可以将列表用于存储和操作数据。而PDF(Portable Document Format)是一种用于表示电子文档的文件格式。 如果你想将Python列表保存为PDF文件,可以使用相关的库或模块来实现。比如可以使用Python中的reportlab库来创建和操作PDF文档。reportlab库提供了一些函数和类,可以在Python中编写代码来生成PDF文档。 首先,你需要在Python项目中安装reportlab库。可以使用pip命令来安装reportlab库,具体命令如下: ```python pip install reportlab ``` 安装完成后,你就可以在Python代码中导入reportlab库并使用它的函数和类来创建PDF文档了。 以下是一个简单的示例代码,用于创建一个包含Python列表内容的PDF文档: ```python from reportlab.pdfgen import canvas def create_pdf_with_list(file_name, my_list): pdf = canvas.Canvas(file_name) pdf.setFont("Helvetica", 12) # 将列表内容写入PDF文档 for i, item in enumerate(my_list): pdf.drawString(50, 750 - i * 20, str(item)) pdf.save() # 创建一个示例列表 my_list = ["苹果", "香蕉", "橙子", "葡萄"] # 调用函数创建PDF文档 create_pdf_with_list("my_list.pdf", my_list) ``` 上述代码中,我们首先导入了reportlab库的canvas模块,然后定义了一个函数create_pdf_with_list,该函数接受文件名和列表作为参数,用于创建包含列表内容的PDF文档。在函数内部,我们通过canvas.Canvas方法创建了一个PDF对象,并设置了字体和大小。然后使用pdf.drawString方法将列表内容逐行写入PDF文档,并通过pdf.save保存文档。 以上就是使用Python创建包含列表内容的PDF文档的简单示例。你可以根据需求,调整代码并添加更多功能来满足具体需求。 ### 回答3: Python列表是一种有序的可变数据类型,可以用来存储多个元素。每个元素都可以用唯一的索引进行访问。列表是Python中最常用的数据结构之一,具有广泛的应用。 PDF是一种可移植文档格式(Portable Document Format),常用于存储和传递电子文档。它可以包含文本、图形、超链接、音频和视频等元素,具有良好的跨平台兼容性。 Python中可以使用第三方库来生成PDF文件,比如ReportLab、PyPDF2等。这些库提供了丰富的功能,可以创建、编辑和PDF文件。 如果要将Python列表换为PDF,可以使用这些库中的一种。首先,需要导入相应的库,并创建一个PDF文件对象。然后,可以使用库提供的方法添加列表元素到PDF文件中。可以根据需要设置文本格式、字体、颜色等属性。最后,将PDF文件保存到磁盘或进行其他操作。 要注意的是,PDF文件是一种二进制文件,与文本文件不同。在处理PDF文件时,需要使用特定的库和方法来读取、写入和编辑PDF内容。 总结起来,Python列表和PDF是两个不同的概念。Python列表是一种数据结构,用于存储和处理多个元素。PDF是一种文件格式,用于存储和传递电子文档。如果想要将Python列表换为PDF,可以使用第三方库来实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

okfang616

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值