前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >盘点一个PDF自动化办公的实战问题

盘点一个PDF自动化办公的实战问题

作者头像
前端皮皮
发布2024-03-26 17:51:51
730
发布2024-03-26 17:51:51
举报

信言不美,美言不信。

大家好,我是Python进阶者。

一、前言

前几天在Python白银交流群【黄志诚】问了一个PDF自动化办公的问题,问题和代码如下:这个为什么这样呢?

代码语言:javascript
复制
import os
from PyPDF2 import PdfReader, PdfWriter

# 设置目标目录和要插入的PDF文件路径
target_directory = r'd:\Users\Desktop\PDF\PDF'
pdf_to_insert = r'd:\Users\Desktop\PDF\公共文件.pdf'

# 创建PdfFileReader对象来读取要插入的PDF
pdf_reader = PdfReader(open(pdf_to_insert, 'rb'))

# 遍历目标目录下的所有PDF文件
for filename in os.listdir(target_directory):
    if filename.endswith('.pdf'):
        # 创建PdfFileWriter对象来处理当前文件
        pdf_writer = PdfWriter()

        # 打开目标文件
        with open(os.path.join(target_directory, filename), 'rb') as infile:
            pdf_reader_target = PdfReader(infile)

            # 将目标文件的所有页面添加到PdfFileWriter对象中
            for page in range(len(pdf_reader.pages)):
                pdf_writer.add_page(pdf_reader_target.pages[page])

            # 将要插入的PDF的页面添加到PdfFileWriter对象中
            for page in range(len(pdf_reader.pages)):
                pdf_writer.add_page(pdf_reader.pages[page])

        # 将修改后的PDF内容写入到新文件中
        with open(os.path.join(target_directory + r'\已完成', filename), 'wb') as outfile:
            pdf_writer.write(outfile)

二、实现过程

这里【此类生物】给了一个指导,如下所示:

【此类生物】:你循环 pdf_reader 的页面 不应该加入的也是 pdf_reader 对应的页面吗,为什么是pdf_reader_target.pages[page],这两个pdf 页码数肯定不一样。你循环的是A.PDF 页面 添加进去的是B.PDF 两pdf页码肯定不一样,肯定报错。

【黄志诚】:我是要批量为目录下单每一个文件加一个文件。

具体修改方法如下所示:

顺利地解决了粉丝的问题。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Python共享之家 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、实现过程
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档