Python 是否有一种编程方式将一系列图像文件转换为PDF?

Python 是否有一种编程方式将一系列图像文件转换为PDF?,python,documentation,latex,pdf-generation,tex,Python,Documentation,Latex,Pdf Generation,Tex,我有一系列JPG图像。每一次扫描都已裁剪到一页的精确大小。它们是一本有价值的绝版书的连续页。发布应用程序要求将这些页面作为单个PDF文件提交 我可以把每一张图片都放进文字处理器(例如OpenOffice)——不幸的是,这是一本非常大的书,我有很多书要读。这显然很耗时。这是志愿工作 我的第二个想法是使用LaTeX(实际上是pdflatex)——我可以制作一个非常简单的文档,它只包含一系列的内嵌图像。我相信这种方法是可行的,对于一些看起来很简单的工作来说,它只是有点复杂 我突然想到,一定有一个更简单

我有一系列JPG图像。每一次扫描都已裁剪到一页的精确大小。它们是一本有价值的绝版书的连续页。发布应用程序要求将这些页面作为单个PDF文件提交

我可以把每一张图片都放进文字处理器(例如OpenOffice)——不幸的是,这是一本非常大的书,我有很多书要读。这显然很耗时。这是志愿工作

我的第二个想法是使用LaTeX(实际上是pdflatex)——我可以制作一个非常简单的文档,它只包含一系列的内嵌图像。我相信这种方法是可行的,对于一些看起来很简单的工作来说,它只是有点复杂

我突然想到,一定有一个更简单的方法——有什么建议吗

我使用的是Ubuntu 9.10,我的主要编程语言是Python,但是如果解决方案非常简单,我很乐意采用任何可行的技术


更新,有人能解释一下这里出了什么问题吗

sal@bobnit:/media/NIKON D200/DCIM/100HPAIO/bat$ convert '*.jpg' bat.pdf
convert: unable to open image `*.jpg': No such file or directory @ blob.c/OpenBlob/2439.
convert: missing an image filename `bat.pdf' @ convert.c/ConvertImageCommand/2775.
convert命令语法中是否有方法指定bat.pdf为输出

谢谢

我突然想到,一定有一个更简单的方法——有什么建议吗

你说得对,有!试试这个:

sudo apt-get install imagemagick
cd ~/rare-book-images
convert "*.jpg" rare-book.pdf

注意:根据您使用的shell,“*.jpg”可能无法按预期工作。尝试省略引号,看看这是否能得到预期的结果。

如果您对Python解决方案感兴趣,可以使用该库。例如:

from reportlab.platypus import SimpleDocTemplate, Image
from reportlab.lib.pagesizes import letter
from glob import glob

doc = SimpleDocTemplate('image-collection.pdf', pagesize=letter)
parts = [Image(filename) for filename in glob('*.jpg')]
doc.build(parts)

这将获取您当前目录中的所有jpg文件,并生成一个名为“image collection.pdf”的文件。

我想知道您是否可以使用
for
循环,内部使用
\includegraphics
命令,并在LaTeX文件中使用一些适当的漂亮标准图像文件命名等等。这可能具有允许标题页等和页面编号等优点。(我不确定其他解决方案是否能做到这一点,我也懒得去检查。我只是在这里大声思考一下,真的)

我建议先在文件的子集上尝试一下,以确保前几页的效果良好。如果你有很多页面,这将是一个昂贵的操作。你可能想使用引号(
“*.jpg”
),因为imagemagick比shell更能让事情按正确的顺序进行。@cobbal:这主意不错,谢谢。这听起来是个不错的解决方案!我现在要试一下。盐这真是太简单了我想它被贝壳球弄糊涂了。尝试使用双引号或完全省略引号。为什么您要引用“*.jpg”,对于我来说转换为*.jpg bat.pdf是有效的。此外,它看起来像是在您的存储卡(/media/NIKON D200)上输出结果,这可能不是您想要的。您可能会用完空间,而且在任何情况下,您每次给卡片写信时都会稍微磨损卡片。不,没有空间短缺。今晚我要再试一次。