当前位置: 首页 > news >正文

pdf删除一页 python实现(已验证)

首先安装库

使用PyPDF2

首先,确保你已经安装了PyPDF2。如果没有安装,可以通过pip安装:

pip install PyPDF2

然后运行

import PyPDF2def remove_page(input_pdf_path, output_pdf_path, page_number_to_remove):# 打开PDF文件with open(input_pdf_path, 'rb') as file:reader = PyPDF2.PdfFileReader(file)writer = PyPDF2.PdfFileWriter()# 遍历所有页面,除了要删除的页面for page_num in range(reader.numPages):if page_num != page_number_to_remove:writer.addPage(reader.getPage(page_num))# 写入新的PDF文件with open(output_pdf_path, 'wb') as output_file:writer.write(output_file)# 示例用法
input_pdf = 'example.pdf'
output_pdf = 'example_modified.pdf'
page_number_to_remove = 1  # 例如,删除第二页(索引从0开始)
remove_page(input_pdf, output_pdf, page_number_to_remove)

方法二

使用PDFPlumber

如果你更倾向于使用PDFPlumber(虽然它主要用于提取文本而不是直接操作页面),你首先需要安装它

安装库

pip install pdfplumber

但是,PDFPlumber本身不直接支持删除页面。你可以先用它提取页面,然后使用PyPDF2或其他方法重新组合页面。例如:

import pdfplumber
import PyPDF2def remove_page_with_pdfplumber(input_pdf_path, output_pdf_path, page_number_to_remove):# 使用PDFPlumber提取页面内容(可选,仅用于示例)pages = pdfplumber.extract_pages(input_pdf_path)extracted_pages = [pages[i] for i in range(len(pages)) if i != page_number_to_remove]# 使用PyPDF2重新组合页面并保存新的PDF文件writer = PyPDF2.PdfFileWriter()for page in extracted_pages:page_obj = PyPDF2.pdf.PageObject.createBlankPage(None, width=page.width, height=page.height)writer.addPage(page_obj)writer._writePageElement(writer._addObject(page.data), page_obj)  # 这里简化处理,实际使用时可能需要更精细的控制with open(output_pdf_path, 'wb') as f:writer.write(f)# 示例用法
input_pdf = 'example.pdf'
output_pdf = 'example_modified.pdf'
page_number_to_remove = 1  # 例如,删除第二页(索引从0开始)
remove_page_with_pdfplumber(input_pdf, output_pdf, page_number_to_remove)

http://www.lryc.cn/news/579094.html

相关文章:

  • 模板编译原理
  • 使用OpenCV识别图片相似度评分的应用
  • YOLOv11剪枝与量化(一)模型压缩的必要性
  • 深入理解C++11原子操作:从内存模型到无锁编程
  • SpringCloud系列(47)--SpringCloud Bus实现动态刷新定点通知
  • 04-动态规划
  • 数学建模_微分方程
  • 内存架构的十字路口:深入解析统一内存访问(UMA)与非一致内存访问(NUMA)
  • 虚拟机知识点-Vagrant 在通过 VirtualBox 启动 CentOS 虚拟机时失败-VERR_NEM_VM_CREATE_FAILED
  • 从0开始学习R语言--Day36--空间杜宾模型
  • maven仓库
  • WSL2 + Docker Desktop 环境中查看本地镜像
  • 【Vue入门学习笔记】Vue核心语法
  • CentOS 卸载docker
  • 移动conda虚拟环境的安装目录
  • mongo常用命令
  • odoo17 警示: selection attribute will be ignored as the field is related
  • Node.js-http模块
  • Day04:玩转标准库中的数据处理与日志记录
  • Chart.js 安装使用教程
  • 基于SpringBoot和Leaflet的区域冲突可视化系统(2025企业级实战方案)
  • VC Spyglass:工具简介
  • React Native 开发环境搭建--window--android
  • 24年京东秋季笔试题
  • CSS外边距合并(塌陷)全解析:原理、场景与解决方案
  • flutter更改第三方库pub get的缓存目录;更改.gradle文件夹存放目录
  • 告别告警风暴:深入理解 Prometheus Alertmanager 的智能告警策略
  • 为什么星敏感器(Star Tracker)需要时间同步?—— 从原理到应用的全解析
  • 1-RuoYi框架配置与启动
  • 整流电路Multisim电路仿真实验汇总——硬件工程师笔记