吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1126|回复: 9
收起左侧

[Python 原创] 文件夹中图片合并为一个pdf,然后删除文件夹

[复制链接]
zjg121 发表于 2024-3-25 10:56
本帖最后由 zjg121 于 2024-3-25 14:45 编辑

20240325:1.增加一个函数:把pdf文件拆开成图片,放在一个文件夹里。原pdf就不删除了。这个函数和原来的函数正好相反:图片2pdf;pdf2图片。
2.先安装PyMuPDF: pip install pymupdf

[Python] 纯文本查看 复制代码
import fitz  # PyMuPDF
import os


def pdf_to_images(pdf_path1):

    directory_path = os.path.dirname(pdf_path1)

    # 使用os.path.join拼接文件夹路径和新子文件夹名称
    output_folder = os.path.join(directory_path, 'PDF分页图片')

    # 如果输出文件夹不存在,则创建它
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

        # 打开PDF文件
    doc = fitz.open(pdf_path)

    # 遍历PDF的每一页
    for page_num in range(len(doc)):
        page = doc[page_num]
        pix = page.get_pixmap()

        # 生成图片的文件名
        image_filename = os.path.join(output_folder, f'page_{str(page_num + 1).zfill(4)}.png')

        # 将图片保存到文件
        pix.save(image_filename)

        # 关闭PDF文件
    doc.close()
    print(f'PDF {pdf_path} has been successfully converted to images and saved in {output_folder}')


# 使用示例
pdf_path = 'd:/20240325104126.pdf'  # 替换为你的PDF文件路径
pdf_to_images(pdf_path)








制作了一个python函数:把一个文件夹中的所有jpg/jpeg图片合并为一个pdf文件,然后删除这个文件夹。相当于用pdf替换图片文件夹。
先安装pillow和fpdf:pip install pillow fpdf

[Python] 纯文本查看 复制代码
import os
from PIL import Image
from fpdf import FPDF
import shutil
from datetime import datetime

def merge_jpg_to_pdf_and_delete_folder(folder_path):
    # 创建一个FPDF对象
    pdf = FPDF()

    # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
        if filename.endswith(".jpg") or filename.endswith(".jpeg"):
            # 打开图片并获取其尺寸
            image_path = os.path.join(folder_path, filename)
            with Image.open(image_path) as img:
                # 将图片添加到PDF中,这里假设图片尺寸适应PDF页面大小
                pdf.add_page()
                pdf.image(image_path, 0, 0, 210)  # 假设PDF页面大小为A4,即210mm宽

    # 获取当前日期和时间
    now = datetime.now()
    # 格式化日期和时间,例如:2023-04-01_15-30-45.jpg
    timestamp = now.strftime("%Y%m%d%H%M%S")
    # 创建文件名,假设文件扩展名为.jpg
    filename = f"{timestamp}.pdf"

    # 使用os.path.dirname来获取父目录
    folder_path1 = os.path.dirname(folder_path)

    # 拼接文件夹路径和文件名
    pdf_path = os.path.join(folder_path1, filename)

    # 保存PDF文件,这里假设PDF文件名为merged.pdf,保存在当前目录下
    pdf.output(pdf_path, "F")

    # 删除文件夹及其内容
    shutil.rmtree(folder_path)

    print(f"PDF file {pdf_path} created and folder {folder_path} deleted.")


# 使用函数,传入包含JPG图片的文件夹路径
merge_jpg_to_pdf_and_delete_folder("d:/图片")

免费评分

参与人数 2吾爱币 +9 热心值 +2 收起 理由
爱飞的猫 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
小哲网络 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

侃遍天下无二人 发表于 2024-3-25 19:59
我直接用布丁扫描处理的,带压缩,还能顺便给画质增强一下
Tiana丶Tiana 发表于 2024-3-25 13:39
我最近刚做了一个 PDF 拆分图片 并放至对应文件夹功能!。好家伙你又给我合进去了!
 楼主| zjg121 发表于 2024-3-25 13:59
Tiana丶Tiana 发表于 2024-3-25 13:39
我最近刚做了一个 PDF 拆分图片 并放至对应文件夹功能!。好家伙你又给我合进去了!

嗯。这是一个思路。以后就弄两个函数:函数和反函数。
O2H2O 发表于 2024-3-25 14:11
这个总会用到的呢!
Yjyjyj 发表于 2024-3-25 16:01
拿走拿走,一个字母都不留
dhsfb 发表于 2024-3-26 08:30
感谢高手,收藏编译一下
Lch1986 发表于 2024-3-26 09:23
这个工作上应该可以用到,部分类似功能还得收费才能用。
zlp123 发表于 2024-3-30 23:33
这个应该用得用,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表