使用Python将PNG转换为PDF

6 投票
5 回答
10341 浏览
提问于 2025-04-16 11:50

我想写一个Python脚本,把PNG格式的图片转换成每个PDF包含两页的文件(也就是每个PDF里有两张PNG图片)。这个软件需要在Mac和Windows 7上都能运行。

我现在的解决方案是使用ReportLab这个库,但在Mac上安装起来不太容易。根据它的网站,ReportLab只有Windows的编译版本。它有一个跨平台的版本,但需要安装C编译器。

有没有更好的方法可以做到这一点(这样我就不需要在Mac上安装C编译器)?我应该换一个库,还是换一种完全不同的语言?只要我能从Python脚本中调用这个程序,我可以用任何语言来创建PDF。另外,有没有一种非常简单的C编译器(也就是说,非程序员也能安装的那种)可以在Mac上安装?

你有什么推荐的?

5 个回答

1

PyCairo可能是一个不错的选择。使用它,你可以完全掌控自己的代码,而且需要的依赖项更少。不过,reportlab要简单很多。

1

Reportlab 是一个很不错的工具,用来生成 PDF 文件。如果你能用它来满足你的需求,那就最好继续使用它。关于在 MAC 上的安装,我看到 darwinports 有一个叫做 py-reportlab 的软件包。按照说明来用 portage 安装,它会自动安装所需的依赖项。

4

Unix系统中的一个程序叫做convert,可以帮助你进行文件格式转换。

convert file.png file.pdf

但是你说你也想在Windows上使用。PIL图像库里有一个PDF模块。你可以试试一个简单的

pilconvert file.png file.pdf

如果你想把多张图片放在一起,可以使用这个库,它在调整大小、拼接等方面非常灵活。这个库也可以在Mac和Windows上使用。

更新 2011-02-15

在我的MacOS上,我安装reportlab没有遇到任何问题。

% sudo easy_install reportlab
Searching for reportlab
Reading http://pypi.python.org/simple/reportlab/
Reading http://www.reportlab.com/
Best match: reportlab 2.5
Downloading http://pypi.python.org/packages/source/r/reportlab/reportlab-2.5.tar.gz#md5=cdf8b87a6cf1501de1b0a8d341a217d3
Processing reportlab-2.5.tar.gz

所以你可以结合使用PIL和Reportlab来满足自己的需求。

撰写回答