繁体   English   中英

如何使用img2pdf作为模块

[英]How to use img2pdf as module

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

  • 我试过pypdf ,但它说我没有安装PIL,尽管我有。
  • 我试过Reportlab ,但页面大小比图像本身大,我找不到修复它的方法。 我也觉得很难......
  • 我试过img2pdf ,但无法理解如何使用它

我真的厌倦了所有这些库,我正在寻找一个好的解决方案。 好的意思是:

  • 尽可能的pythonic
  • 使页面大小适合图像大小
  • 支持大量图像(甚至可能是500)
  • 很容易

如果您可以帮助我已经尝试过的模块/代码示例,那就太棒了。 此外,如果您有模块经验,我很高兴您能分享。

编辑:

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

import img2pdf
pdf_bytes = img2pdf('test.jpg', dpi=150)

但它抛出一个异常:`TypeError:'module'对象不可调用

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

GitHub代码中没有任何内容告诉我该模块是可调用的。 这可能是自述文件中的一个错误; 他们的意思是使用convert函数。 试试这个:

import img2pdf
pdf_bytes = img2pdf.convert(('test.jpg',), dpi=150, x=None, y=None)

源代码中 ,此函数需要位置参数xy

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参数,它就会设置一个默认情况,使它看起来(至少对我而言)像xy一样都是可选参数:

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

但是,你在PIP上获得的包不一定与GitHub上的代码相同。 您可以尝试不提供xy作为参数进行convert - 甚至更好,在您自己的计算机上查找源文件并自行检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM