首页 > 编程语言 >python批量插入图片到一个pdf中

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

时间:2023-10-02 09:01:52浏览次数:33  
标签:img 批量 python self pdfs imgs pdf path

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

标签:img,批量,python,self,pdfs,imgs,pdf,path
From: https://www.cnblogs.com/panlifeng/p/17739690.html

相关文章

  • python基础:文本(字符串)
    一前言环境:python3.10win10在python中,我们要表示的每个数据都是归属于某个类型,这个类型要么是python已经帮我我们写好的即内置的数据类型,如int、float、List、Dict等,要么来自于第三方库,要么我们自己定义一个类型在python中文本是属于str类型二用str类型来表示文本字符串相......
  • 小批量梯度下降
    在小批量梯度下降中,试分析为什么学习率要和批量大小成正比在标准的梯度下降中,参数的更新公式是:θ=θ−η∇θJL(θ)\theta=\theta-\eta\nabla_\thetaJL(\theta)θ=θ−η∇θ​JL(θ)其中,η\etaη是学习率,∇θJL(θ)\nabla_\thetaJL(\theta)∇θ​JL(θ)是损失函数JL......
  • Python内存管理&垃圾回收机制
    Python内存管理&垃圾回收机制引用计数器为主,标记清除和分代回收为辅(循环垃圾回收器)+缓存机制一、引用计数器1、环状双向链表refchain在python程序创建的任何对象都会放在rechain双向链表中。name='七落'age=18hobby=['篮球','美女']#内部会创建一些数......
  • Cplex混合整数规划求解(Python API)
    绝对的原创!罕见的Cplex-PythonAPI混合整数规划求解教程!这是我盯了一天的程序一条条写注释一条条悟出来的•́‸ก一、问题描述求解有容量限制的的设施位置问题,使用Benders分解。模型如下:\[min\quad\sum^{locations}_{j=1}fixedCost_j//open_j+\sum^{locations}_{j=1}\sum^{cli......
  • 如何查找python对象或类的父类子类以及用法
    一个类其方法和数据的来源可以是自定义,也可以是继承自各级父类。通过dir查看其方法和属性,通过help查看其使用方法。特别地,可通过Base和subclass寻找其父类和其他子类。亦可通过文档研究其继承关系。文档不仅包含自身类,也包括其父类的属性方法。  python>>>help(op("/projec......
  • Python笔记:控制流优化
    零值判断Python当中有个语法糖是可以直接对某个对象做空值判断:ifnums_arr: pass不同类型的数据对应什么样的bool值呢?我们可以有如下的判断:None、0、False、空列表、空元组、空字典、空集合等等都对应布尔值为假。其余的对应布尔值为真。但是现在问题来了,对于开发者自......
  • 批量下载西瓜、腾讯、抖音等视频平台的短视频的软件
    分享一个视频批量下载软件,自己也在用(软件官网:https://hhcat.llsbcq.com)很多人都有短视频下载的需要,不论是做账号还是剪辑素材,在主流平台批量下载短视频素材都是一个刚需。说实话,因为短视频平台的规则是经常变化的,免费软件的作者基本都是用爱发电,很难实时跟上短视频平台的变化,也......
  • adoc转换html+UPF低功耗仿真例子+python转换C代码+readmemh的@使用
    adoc转换htmladoc这种格式是很多riscv文档使用的格式,该格式可以生成pdf,生成html。生成html的好处是,选中和翻译方便,复制粘贴方便。首先是gem软件要安装,这个软件似乎是ruby相关的(RubyGemsisapackagemanagerfortheRubyprogramminglanguagethatprovidesastandardform......
  • 批量爬取多分页多张图片
    importurllib.requestfromlxmlimportetree#https://sc.chinaz.com/tupian/siwameinvtupian.htmlurl='https://sc.chinaz.com/tupian/siwameinvtupian_2.html'defgetTenGirlPhote(page):headers={'User-Agent':'Mozil......
  • python不能找到自己写的包怎么办
    python找不到自己写的包一般是因为路径问题导致的,我们的包在不同的目录下需要使用不同的方式导入。下面我们就来看一下遇到无法找到自己写的包的解决方法:我们可以先使用下面的方法查看当前路径:importsysprint(sys.path)然后使用下面的方法获取包所在的路径即可:fromosimp......