用于去除离散数学课件中冗余页面,提高可读性
第八章群论的ppt存在一些问题,少了以下页数
| 逻辑页码 | 对应的原始ppt实际页码 |
|---|---|
| 14 | 63 |
| 20 | 102 |
| 24 | 124 |
| 43 | 243 |
| 44 | 252 |
| 84 | 529 |
| 91 | 584 |
| 98 | 627 |
| 117 | 764 |
本脚本通过 OCR(光学字符识别)提取 PDF 页面右下角的页码信息,删除具有相同页码的重复页面,仅保留每个页码的最后一个出现的页面,并生成一个新的 PDF 文件。
- Python 3.8 或更高版本。
- 以下 Python 库:
PyPDF2pdf2imagepytesseract
-
安装 Python 库
使用pip安装所需库:pip install PyPDF2 pdf2image pytesseract
-
安装 Tesseract-OCR
- Windows:
从 Tesseract OCR 下载并安装。
安装完成后,将路径(例如C:\Program Files\Tesseract-OCR\tesseract.exe)添加到系统的 PATH 环境变量中。 - Linux:
sudo apt-get install tesseract-ocr
- macOS:
brew install tesseract
- Windows:
从 Tesseract OCR 下载并安装。
-
安装 Poppler
- Windows:
从 Poppler for Windows 下载并安装。
将bin文件夹的路径添加到系统 PATH 环境变量中。 - Linux:
sudo apt-get install poppler-utils
- macOS:
brew install poppler
- Windows:
从 Poppler for Windows 下载并安装。
- 将脚本文件(
remover.py)放置在项目目录中。 - 确保输入的 PDF 文件与脚本位于同一目录,或者在脚本中指定 PDF 文件的完整路径。
- 运行脚本:
python remover.py
-
输入 PDF 文件:
- 修改
input_pdf变量以指定输入 PDF 文件的名称。
示例:input_pdf = "example.pdf"
- 修改
-
输出 PDF 文件:
- 脚本会在输入 PDF 文件名的基础上生成一个新的去重 PDF 文件,文件名加上前缀
"output"。
- 脚本会在输入 PDF 文件名的基础上生成一个新的去重 PDF 文件,文件名加上前缀
-
OCR 检测区域:
ocr_area变量定义了页码所在的矩形区域。格式为(left, top, right, bottom)。- 需要根据实际 PDF 页面内容调整此区域。
input_pdf = "示例.pdf"
output_pdf = "output_示例.pdf"
ocr_area = (908, 731, 1008, 756) # 根据实际 PDF 调整-
转换 PDF 页面为图片:
使用pdf2image将 PDF 的每一页转换为图片。 -
提取页码信息:
对每页图片的指定区域运行 OCR,识别出页码信息(如1/145)。 -
去重逻辑:
对具有相同页码的页面,仅保留其最后一次出现。 -
生成新 PDF 文件:
保存处理后的唯一页面到新 PDF 文件中。
输入 PDF 文件为 example.pdf,脚本将生成去重后的文件 output_example.pdf。
本脚本基于 PyPDF2、pdf2image 和 pytesseract 实现。适用于处理带有重复页码信息的 PDF 文档,简化手动操作流程。
