python批量插入图片到一个pdf中

news/发布时间2024/5/19 6:18:06

import os
from PIL import Image
from PyPDF2 import PdfFileMerger

# 防止字符串乱码
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

class AllImagesToPdf:

    def __init__(self):
        self.imgs_path = "imgs"  # 将所有的图片放到此文件夹中
        self.pdfs_path = "pdfs"  # 将所有转换后的pdf放到此文件夹

    def imgs_to_pdfs(self):
        imgs_path = self.imgs_path
        imgs_list = os.listdir(imgs_path)
        for img_name in imgs_list:
            if "jpg" in img_name or "png" in img_name:
                read_img_path = os.path.join(self.imgs_path,img_name)
                obj_img = Image.open(read_img_path)  # 打开指定路径下的图片
                save_img_path = os.path.join(self.pdfs_path,img_name.split(".")[0]+".pdf")  # 拼接pdf的路径和名称
                obj_img.save(save_img_path)  # 保存为pdf

    def pdfs_to_pdf(self):
        pdfs_path = self.pdfs_path
        pdfs_list = os.listdir(pdfs_path)
        pdfs_path_list = []
        for pdf_name in pdfs_list:
            if pdf_name.endswith(".pdf"):
                pdfs_path_list.append(os.path.join(self.pdfs_path,pdf_name))
        # print(pdfs_path_list)
        pdf_merger = PdfFileMerger()  # 创建PdfFileMerger对象,用来合并pdf文件
        for file_path in pdfs_path_list:
            pdf_merger.append(file_path)

        pdf_merger.write("mergerd.pdf")  # 使用write方法将所有pdf文件写入到一个文件

    def run(self):

        self.imgs_to_pdfs()  # 把大量的图片一个个转为pdf
        print("批量图片转批量pdf完毕")
        self.pdfs_to_pdf()   # 把大量的pdf合并到一个pdf
        print("批量pdf转pdf完毕")


if __name__ == '__main__':
    itp = AllImagesToPdf()
    itp.run()

————————————————

原文链接:https://blog.csdn.net/weixin_44346972/article/details/127263455

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ulsteruni.cn/article/13835774.html

如若内容造成侵权/违法违规/事实不符,请联系编程大学网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

P3477 [POI2008] PER-Permutation 解题报告

咕咕咕我咕咕咕了这道题半年之久? 好像洛谷好多题解都被 hack 了啊。 (本题解现有 hack 均通过)题目链接折叠题干 [POI2008] PER-Permutation 题目描述 Multiset is a mathematical object similar to a set, but each member of a multiset may have more than one memb…

CUDA矩阵乘法算法分析

CUDA矩阵乘法算法分析 矩阵乘法是科学计算的基本构建块。此外,矩阵乘法的算法模式具有代表性。许多其他算法与矩阵乘法共享类似的优化技术。因此,矩阵乘法是学习并行编程中最重要的例子之一。 CUDA 矩阵乘法的源代码可在 gitlab 上找到。建议使用 git 获取源代码,它允许提取…

一、初识MAUI

1、创建MAUI的空项目。 2、平台层。 比如Android、IOS、MAC、Window、Tizen。 很多人可能不认识Tizen,这里解释一下,比如华为鸿蒙、阿里飞天、深度deepin、Ubuntu、CentOS。这样理解了吧。 2、MAUI的启动目录在MauiProgram.cs里。 新建项的空项目中,MauiProgram中启动MauiAp…

数据库系统原理

数据库系统原理 第一章 数据库系统概述 第一节 数据库基本概念数据Data 数据(Data)是描述事务的符号记录,是指用物理符号记录下来的、可以鉴别的信息 数据是信息存在的一种形式,只有通过解释或处理的数据才能成为有用的信息数据库DB 数据库(DB)是指长期储存在计算机中的有…

iMessage群发,苹果iMessage短信,苹果iMessage推信,完美实现 - 电脑端升级版

一、PC电脑版苹果系统(Mac OS)上实现imessage群发总结为以下几种方式: /*MacOS苹果系统,正常情况下,只能安装到苹果公司自己出品的Mac电脑,俗称白苹果,不能安装到各种组装机或者其他品牌的品牌机上,黑苹果的的原理,就是通过一些 “破解补丁” 工具欺骗macOS系统,让苹果系统…

Python内存管理垃圾回收机制

Python内存管理&垃圾回收机制引用计数器为主,标记清除和分代回收为辅 (循环垃圾回收器) + 缓存机制一、引用计数器 1、环状双向链表 refchain在python程序创建的任何对象都会放在rechain双向链表中。name = 七落 age = 18 hobby = [篮球, 美女]# 内部会创建一些数据【上一…