python程序操作pdf

python代码进行多个图片合并为pdf:

python 复制代码
#python代码进行多个图片合并为pdf:
from PIL import Image
from fpdf import FPDF
import os


def images_to_pdf(image_paths, output_pdf, quality=85):
    """
    将多个图片合并为一个PDF文件,并进行适当的压缩。

    :param image_paths: 图片文件路径列表
    :param output_pdf: 输出的PDF文件路径
    :param quality: 图片压缩质量,范围为1-95,默认85
    """
    pdf = FPDF()
    n=0
    for image_path in image_paths:
        n=n+1
        # 打开图片并调整其质量
        img = Image.open(image_path)
        if img.mode == 'RGBA':
            img = img.convert('RGB')
        img.save(f'temp{n}.jpg', 'JPEG', quality=quality)

        # 将图片添加到PDF中
        pdf.add_page()
        pdf.image(f'temp{n}.jpg', 0, 0, 210, 297)  # A4尺寸
        img.close()#hsxadd
        # 删除临时文件
        os.remove(f'temp{n}.jpg')

        # 保存PDF文件
    pdf.output(output_pdf, "F")


# 示例使用
# image_paths = ['image1.jpg', 'image2.jpg', 'image3.jpg']
# output_pdf = 'output.pdf'
image_paths = [
    r"D:\Programs\py\pythonProject\data\1.jpg",
    r"D:\Programs\py\pythonProject\data\2.jpg",
    r"D:\Programs\py\pythonProject\data\3.jpg"
]
output_pdf = r"D:\Programs\py\pythonProject\data\outputzip3.pdf"
images_to_pdf(image_paths, output_pdf)

python代码进行多个PDF合并:

复制代码
#python代码进行多个PDF合并:
import os
from PyPDF2 import PdfMerger
def merge_pdfs(pdf_files, output_path):
    """
    合并多个 PDF 文件
    :param pdf_files: 包含 PDF 文件路径的列表
    :param output_path: 合并后的 PDF 文件输出路径
    """
    merger = PdfMerger()
    for pdf_file in pdf_files:
        if os.path.exists(pdf_file):
            merger.append(pdf_file)
        else:
            print(f"文件 {pdf_file} 不存在,跳过。")
    merger.write(output_path)
    merger.close()
    print(f"合并完成,输出文件: {output_path}")
# 示例使用
pdf_files = [r"D:\Programs\py\pythonProject\data\output.pdf", r"D:\Programs\py\pythonProject\data\outputzip2.pdf", r"D:\Programs\py\pythonProject\data\outputzip3.pdf"]
output_path = r"D:\Programs\py\pythonProject\data\merged_output.pdf"
merge_pdfs(pdf_files, output_path)
相关推荐
Pyeako几秒前
深度学习--循环神经网络原理&局限&与LSTM解决方案
人工智能·python·rnn·深度学习·lstm·循环神经网络·遗忘门
困死,根本不会6 分钟前
蓝桥杯python备赛笔记之(八)动态规划(DP)
笔记·python·学习·算法·蓝桥杯·动态规划
weixin199701080166 分钟前
货铺头商品详情页前端性能优化实战
java·前端·python
深蓝电商API13 分钟前
爬虫监控告警:结合企业微信或钉钉,打造 7×24 小时实时预警系统
爬虫·python·钉钉·企业微信
蜜獾云14 分钟前
linux-磁盘挂载
linux·运维·服务器
懷淰メ15 分钟前
python3GUI--socket+PyQt5开发局域网微信(含功能、详细介绍、分享)
python·学习·gui·大学生·pyqt5·微信界面
risc12345617 分钟前
channel.read(dest, channelPosition) 的读取大小限制
开发语言·python
TG_yunshuguoji25 分钟前
阿里云代理商:百炼如何查询账单明细和进行成本优化?
服务器·阿里云·云计算
Irissgwe33 分钟前
Ext系列⽂件系统
linux·服务器·ext系统文件
野犬寒鸦39 分钟前
面试常问:什么是TCP连接:虚拟对话通道的奥秘
服务器·网络·后端·tcp/ip·面试·tcpdump