代码之家  ›  专栏  ›  技术社区  ›  Salim Fadhley

有没有一种程序化的方法将一系列图像文件转换成PDF?[关闭]

  •  6
  • Salim Fadhley  · 技术社区  · 16 年前

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

    我可以把每一张图片都放进文字处理器(比如OpenOffice)中——不幸的是,这里的问题是它是一本非常大的书,我还有很多书要读。这显然是很费时的。这是志愿者工作!

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

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

    我在Ubuntu9.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是输出?

    谢谢

    3 回复  |  直到 16 年前
        1
  •  6
  •   ars    16 年前

    如果您对Python解决方案感兴趣,可以使用 ReportLab 图书馆。例如:

    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”的文件。

        2
  •  12
  •   John Feminella    16 年前

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

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

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

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

        3
  •  0
  •   Seamus    16 年前

    我想知道你能不能用 for 循环 \includegraphics 命令内部和一些适当漂亮的标准图像文件命名等内部乳胶文件。这可能有允许标题页等和页码等的优势。(我不确定其他的解决方案是否能做到这一点,我也不必费心去检查。我只是在这里大声思考,真的)