一、前期工具准备
本次实操选用全免费工具,无付费门槛,所有工具都可直接获取使用:
- 1. OCR识别工具:天若OCR开源版V5.4.1,直接下载地址:
https://gitee.com/taozo/tianruoocr/releases/download/5.4.1/TianruoOCR_5.4.1_x64.7z,解压即可使用,无需安装
- 2. PDF处理工具:WPS免费版,普通免费功能足够完成所有操作,从官方渠道下载即可
- 3. 原始素材:已扫描完成的档案单页JPG/PNG图片,或是已经生成的单层不可检索扫描PDF
二、小批量档案手动实操步骤
步骤1:批量提取文字
如果你的原始素材是单层扫描PDF,先导出所有图片:打开PDF后点击「文件→导出→导出图片」,选择存储文件夹,设置分辨率为300DPI,点击导出即可。
如果素材已经是单页图片,直接打开天若OCR开源版,点击顶部菜单栏「批量识别」,在弹出窗口点击「添加文件」,选中所有需要处理的档案图片,按如下要求设置参数:
- 输出格式:选择txt,每个图片生成一个同名的txt文件,方便对应整理
- 输出路径:选择和图片同一个文件夹,降低整理成本
- 文字校正:勾选「开启文字校正」,提升档案生僻字、繁体的识别准确率
设置完成后点击「开始识别」,等待识别完成,所有文字就会保存为对应名称的txt文件。
步骤2:拼接双层结构
打开WPS,新建空白PDF,点击「插入→图片→来自文件」,选中所有按页码排序好的档案图片,插入后WPS会自动适配每页一张图片,确认所有图片顺序正确,没有错漏即可。
接下来添加可检索文字层:点击WPS顶部菜单栏「编辑→内容编辑→添加文字」,用快速技巧批量处理:打开对应页码的txt文件,全选复制所有文字,回到WPS对应PDF页面,点击页面左上角拖拽出一个和页面大小一致的文本框,粘贴文字。
粘贴后调整文本属性:选中文本框,右键点击「属性」,设置文字透明度为100%,关闭文本框边框,然后拖动调整文本框位置,让上层文字和底层扫描的文字完全重叠,如果位置偏差超过1mm,需要调整行间距、字号修正偏差,避免后续检索出错。
重复操作,逐个页面粘贴对应文字、调整对齐,直到所有页面处理完成。
步骤3:导出符合要求的成品

所有页面处理完成后,点击「文件→另存为→选择PDF格式」,保存的时候按照如下要求设置参数:
- PDF兼容性:选择PDF 1.5,符合绝大多数档案管理系统的要求
- 压缩设置:不压缩图片,保持原始300DPI分辨率
- 取消「加密」「去除文字信息」选项,确保文字层可检索、可复制
点击保存,双层PDF就生成完成。
三、大批量档案自动处理方法
如果需要处理100页以上的档案,逐页操作效率太低,可以用Python脚本批量生成,步骤如下:
先安装Python3.8以上版本,下载地址:https://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe,安装时必须勾选「Add Python to PATH」,否则无法运行脚本。
安装完成后打开命令提示符,执行以下命令安装依赖:
```
pip install paddleocr fpdf pillow PyPDF2
```
然后新建一个文件命名为double_pdf.py,粘贴以下完整可运行代码:
```
from paddleocr import PaddleOCR
from PIL import Image
import os
from PyPDF2 import PdfMerger
from fpdf import FPDF
初始化OCR,自动下载预训练模型
ocr = PaddleOCR(use_angle_cls=True, lang='ch')
img_folder = "./images" 替换成你的图片文件夹路径
output_pdf = "档案双层成品.pdf"
merger = PdfMerger()
按名称排序图片,保证页码正确
img_list = sorted([f for f in os.listdir(img_folder) if f.endswith(('.jpg','.png','.jpeg'))])
for img_name in img_list:
img_path = os.path.join(img_folder, img_name)
result = ocr.ocr(img_path, cls=True)[0]
img = Image.open(img_path)
w, h = img.size
生成单页PDF:底层图片+上层透明文字
pdf = FPDF(unit='pt', format=(w, h))
pdf.add_page()
pdf.image(img_path, 0, 0, w, h)
白色文字匹配背景,实现透明效果
pdf.set_text_color(255,255,255)
for line in result:
[[x1,y1],[x2,y1],[x2,y2],[x1,y2]], text_info = line
text = text_info[0]
font_size = int(y2 - y1)
pdf.set_xy(x1, y1)
pdf.set_font("Arial", size = font_size)
pdf.cell(w = x2-x1, h = y2-y1, txt = text, border=0)
temp_pdf = f"temp_{img_name}.pdf"
pdf.output(temp_pdf)
merger.append(temp_pdf)
os.remove(temp_pdf)
merger.write(output_pdf)
merger.close()
print(f"双层PDF已生成,文件名为:{output_pdf}")
```
修改代码里的img_folder参数为你存放图片的文件夹路径,然后命令行运行python double_pdf.py,等待运行完成即可自动生成符合要求的双层PDF。
四、成品校验步骤
生成完成后必须做两步校验,确保符合档案数字化要求:
- 1. 检索校验:按下Ctrl+F,输入档案中任意一个关键词,看能否准确定位到对应位置,能定位说明文字层正常可用
- 2. 对齐校验:放大页面到200%,检查底层扫描图片是否清晰,上层文字是否和底层完全对齐,无错位即可