[python]将多张图片合并为单个pdf文件

这篇具有很好参考价值的文章主要介绍了[python]将多张图片合并为单个pdf文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

最近有个个人需求是要把多个图片文件合并为一个PDF文件,这样方便用PDF阅读器连续看,避免界面点一下,只会图片放大。(比如看漫画

主要思路是先把单张图片转换成单个PDF文件,然后把PDF文件进行合并。原先是用WPS的转换工具做的,但WPS每次只能批量转换30张,如果有大量图片文件,用WPS就不太方便了。

现成的工具找不到,索性自己整一个。python的pillow库和pypdf2库就可以实现这样的需求。

安装依赖库

本地的python版本为3.11。注意pypdf2升级到3.0版本后,一些类和方法和版本2有些区别。

python -m pip install PyPDF2==3.0.1 pillow==10.2.0

示例代码

目录结构示例

├── images
│   ├── 00001.jpg
│   ├── 00002.jpg
│   ├── 00003.jpg
│   ├── 00004.jpg
│   ├── 00005.jpg
│   ├── 00006.jpg
│   ├── 00007.jpg
│   ├── 00008.jpg
│   ├── 00009.jpg
│   └── 00010.jpg
├── main.py
└── temp

其中main.py内容如下文章来源地址https://www.toymoban.com/news/detail-837601.html

from PIL import Image
import os
import re
from PyPDF2 import PdfMerger

images_dir = "images"
tmpdir = "temp"


def trans_jpg2pdf(jpg_list: list) -> list:
    """jpg图片转换成pdf

    Args:
        jpg_list (list): 图片文件列表

    Returns:
        list: 图片转换后的pdf文件列表
    """
    pdf_list = []
    for jpg in jpg_list:
        jpg_path = os.path.join(images_dir, jpg)
        pdf_file = jpg.replace('.jpg', '.pdf')
        pdf_path = os.path.join(tmpdir, pdf_file)
        if os.path.exists(pdf_path):
            os.remove(pdf_path)
        pdf_list.append(pdf_path)
        im = Image.open(jpg_path)
        im.save(pdf_path, 'PDF', resolution=100.0)
    return pdf_list


def merge_pdf(pdf_list: list, result_pdf: str = "result.pdf"):
    """ 合并pdf文件

    Args:
        pdf_list (list): pdf文件列表
        result_pdf (str): 合并后的pdf文件名称
    """
    sorted_list = sorted(pdf_list, key=lambda x: int(re.search(r'\d+', x).group()))
    f_merger = PdfMerger()
    for pdf in sorted_list:
        f_merger.append(pdf)
    if os.path.exists(result_pdf):
        os.remove(result_pdf)
    f_merger.write(result_pdf)


if __name__ == '__main__':
    jpg_list = [f for f in os.listdir(images_dir) if f.endswith(".jpg")]
    pdf_list = trans_jpg2pdf(jpg_list)
    merge_pdf(pdf_list, "result.pdf")

补充

  • webp格式文件转PDF示例
from PIL import Image  
  
im = Image.open("00033.webp")  
rgb_im = im.convert("RGB")  
rgb_im.save("00033.pdf", 'PDF', resolution=100.0)

到了这里,关于[python]将多张图片合并为单个pdf文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java 如何实现多张PDF合并为一张PDF

    import org.apache.pdfbox.multipdf.PDFMergerUtility; import java.io.IOException; public class PDFMergerExample {     public static void main(String[] args) {         // 定义要合并的PDF文件路径         String[] filesToMerge = {\\\"file1.pdf\\\", \\\"file2.pdf\\\", \\\"file3.pdf\\\"};         // 创建PDF合并工具实例         PDFMergerUtility mer

    2024年02月10日
    浏览(44)
  • python脚本——批量将word文件转换成多张图片

    前提:有时候需要快速查看word文档的内容是否自己需要的,或者就是单纯需要将word文档转换成一张张图片。 思路:word文档直接生成图片比较蛮烦,可能会引起格式变化,就先将word文档转换成PDF,然后将PDF文档转换成图片。 语言:python 3 用法:点击运行后,弹出窗口选择文件

    2024年02月11日
    浏览(36)
  • ffmpeg合并多张图片为视频,加转场

    转场特效,可以在:https://trac.ffmpeg.org/wiki/Xfade#MP4output 查看 -stream_loop 输入流循环的次数,0 表示无循环,-1 表示无限循环,即音乐循环播放。 -acodec aac 设置音频编解码为 acc 模式 -map “[v]” 将合成的视频输入流 v 指定为输出文件的源 -map “5:a” 将第6个文件作为视频音频文件

    2024年02月16日
    浏览(50)
  • 多张图片转为pdf怎么弄?

        多张图片转为pdf怎么弄?在网络传输过程中,为了避免图片格式文件出现差错,并确保图片的清晰度和色彩不因不同设备而有所改变,常见的做法是将图片转换为PDF格式。然而,当涉及到多张图片时,逐一转换将会变得相当繁琐,这时候我们可以将多张图片同时间转换成

    2024年02月10日
    浏览(49)
  • C# 多张图片合成一张PDF

            我是将每张图片转为byte[],再将所有的字节数组转为byte[][],然后对byte[][]进行的处理,大家有其他格式的图片要进行处理的可以先转为上述数据格式。 语种:C# 用到的第三方库:PdfSharp.dll(可直接使用PDFsharp包),如下图 ①申明一个 PDF文件对象 (PdfDocument变量) ②遍

    2024年02月15日
    浏览(47)
  • 【PDF合并】利用 Python 合并 PDF 文件

    依赖安装 在 Python 中,可以使用 PyPDF2 模块来合并多个 PDF 文件。 首先导入 PdfFileMerger 类。接下来,创建一个 PdfFileMerger 对象 merger。 然后,使用 append 方法逐个添加要合并的 PDF 文件。在示例中,将要合并的 PDF 文件路径存储在列表 pdf_files 中,可以根据实际情况进行修改。

    2024年03月16日
    浏览(71)
  • python实现pdf双页文档转png图片,png图片裁剪为左右两等分,再合并为新的pdf单页文档

    现有pdf双页文档如下: 现按照以下页码次序对pdf双页文档进行裁剪和拼接,其中有两点需要特别注意,一是封面页只裁剪中间部分,二是文档是从右往左的顺序排版的

    2024年02月09日
    浏览(50)
  • Python操作PDF:PDF文件合并与PDF页面重排

    处理大量的 PDF 文档是非常麻烦的事情,频繁地打开关闭文件会严重影响工作效率。对于一大堆内容相关的 PDF 文件,我们在处理时可以将这些 PDF 文件合并起来,作为单一文件处理,从而提高处理效率。同时,我们也可以选取不同PDF文件中想要的页面制作新的 PDF 文件。本文

    2024年02月06日
    浏览(33)
  • Python 如何实现合并 PDF 文件?

    在处理多个 PDF 文档时,频繁地打开关闭文件会严重影响效率。因此,对于一大堆内容相关的 PDF 文件,我们可以先将这些 PDF 文件合并起来再操作,从而提高工作效率。比如,在传送大量的 PDF 文档时,在处理同一项目下的多个 PDF 文档时,或在打印一系列 PDF 文档时,将文档

    2024年02月05日
    浏览(47)
  • Python tkinker 界面设计与图标设置和图片文件打包成单个exe

    1.  python 打包图片资源文件和逻辑文件,以及桌面应用图标  2. 完整代码如下。其作用是调用MTK 研发的图片信息dump工具,对图片AE 和AWB 进行分析归类到所属的目录中,并统计目录下文件个数,填充到最后一级文件夹名称开头。 3. 将图片文件转换为 py文件的脚本 4. 主逻辑脚

    2024年02月15日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包