Python 如何使用img2pdf作为模块

Python 如何使用img2pdf作为模块,python,python-2.7,pdf,pdf-generation,jpeg,Python,Python 2.7,Pdf,Pdf Generation,Jpeg,我正在构建一个微小的Python 2.7.9脚本,它将JPEG图像列表作为输入并输出一个PDF文件。我在谷歌上搜索了几个小时,但找不到解决方案: 我试过了,但它说我没有安装PIL,尽管我已经安装了 我试过了,但是页面大小比图片本身大,我找不到修复的方法。我也觉得很难 我试过了,但不知道怎么用 我真的厌倦了所有这些库,我正在寻找一个好的解决方案。 好办法: 尽可能像蟒蛇一样 使页面大小适合图像大小 支持大量图像(甚至可能500个) 很容易 如果你能帮助我使用我已经尝试过的模块/代码示例,那

我正在构建一个微小的Python 2.7.9脚本,它将JPEG图像列表作为输入并输出一个PDF文件。我在谷歌上搜索了几个小时,但找不到解决方案:

  • 我试过了,但它说我没有安装PIL,尽管我已经安装了
  • 我试过了,但是页面大小比图片本身大,我找不到修复的方法。我也觉得很难
  • 我试过了,但不知道怎么用
我真的厌倦了所有这些库,我正在寻找一个好的解决方案。 好办法:

  • 尽可能像蟒蛇一样
  • 使页面大小适合图像大小
  • 支持大量图像(甚至可能500个)
  • 很容易
如果你能帮助我使用我已经尝试过的模块/代码示例,那就太棒了。 此外,如果你有一个模块的经验,我很高兴你能分享它

编辑:

正如评论中所建议的,我决定再给img2pdf一次机会。我使用的是来自官方的以下代码:

但它抛出了一个例外: `TypeError:“模块”对象不可调用


有人知道如何使用img2pdf作为多个图像的模块吗?`

GitHub代码中没有任何内容向我表明此模块是可调用的。这可能是自述中的一个错误;他们在示例中的意思是使用
convert
功能。请尝试以下方法:

import img2pdf
pdf_bytes = img2pdf.convert(('test.jpg',), dpi=150, x=None, y=None)
在中,此函数需要位置参数
x
y

def convert(images, dpi, x, y, title=None, author=None, creator=None, producer=None,
            creationdate=None, moddate=None, subject=None, keywords=None,
            colorspace=None, verbose=False):
但只要您提供
dpi
参数,它就会设置一个默认的大小写,使它看起来(至少在我看来)像
x
y
都是可选参数:

    if not x and not y:
        pdf_x, pdf_y = 72.0*width/ndpi[0], 72.0*height/ndpi[1]

不过,您在PIP上获得的包不一定与GitHub上的代码完全相同。您可以在不提供
x
y
作为
convert
的参数的情况下尝试,或者更好,在您自己的机器上找到源文件并自己检查。

您说您已经尝试了
img2pdf
。再多尝试一下,想出一些脚本。如果您有任何错误,我们将帮助您。谢谢!我现在再试一次…@BhargavRao我试图使用GitHub描述中的代码:
导入img2pdf pdf\u bytes=img2pdf('test.jpg',dpi=150)
,但它引发了一个异常:
“module”对象不可调用。有什么想法吗?是的,这就是花几个小时试着得到一些代码的原因。一旦你觉得不能再进一步了,就用这个代码编辑这个问题。有些人肯定会回答:)有img2pdf的文档吗?首先,非常感谢您的详细回答!我试图使用
convert
,但它给我带来了一个非常奇怪的异常:
回溯(最近一次调用):文件“createpdf.py”,第2行,pdf_bytes=img2pdf.convert('example.jpg',dpi=150,x=None,y=None)文件“C:\Python279\lib\site packages\img2pdf.py”,第209行,在转换时打开(imfilename,“rb”)为im:IOError:[错误2]没有这样的文件或目录:“e”
图像文件存在,脚本+图像都在同一个目录中。你知道哪里出了问题吗?再次感谢!再次查看源代码,是的:第一个参数应该是iterable。Python中的字符串是字符上的iterable;你应该在列表或元组中传递它(见最新答案)。非常感谢!但是,我想你还是不能解决另一个问题-输出的PDF文件已损坏。Adobe Acrobat无法打开它,但Foxit Reader可以打开它-它会显示图像。我不知道为什么会发生这种情况,我尝试了谷歌的一些JPG图像,但仍然无法工作。可能是PIL的问题,但我不知道通用电气需要修理。无论如何,谢谢你的帮助!!@AirThomas
    if not x and not y:
        pdf_x, pdf_y = 72.0*width/ndpi[0], 72.0*height/ndpi[1]