在整理网上下载的PDF文件时,经常会遇到损坏的文档。一个个打开来检查的话耗时费力,于是就利用python的pyPdf库写了一个小程序。可以自动校验指定文件夹下的全部pdf文件,自动遍历其中的所有子文件夹。命令行独立运行,不依赖于任何PDF浏览工具。使用方法,在cmd命令行窗口中切换到程序目录
D:\>pdfcheck
PDF-Checker v1.1 by gerry@2012-03-29
Which directory to check: X:\PDF
根据提示输入文件夹路径即可;也可直接指定路径运行。完成后,程序会在当前目录下生成三个文件
- pdflist.txt :列出 目录下的全部PDF文件
- pdfdel.txt : 打开出错的PDF文件列表,部分文件可在Acorobat打开时自动修复。
- pdfsp.txt : 可以打开但有权限限制的PDF文件。
不过pyPdf模块仍有些小问题,最新的版本是2010年发布的1.13,在处理用 PDF-XChange 处理过的文件时会出现ValueError 错误。Chui-Wen Chiu 发现了这个问题,可通过对模块中pypdf.py文件第700行的read函数作如下修正解决:
try:
line = self.readNextEndLine(stream)
startxref = int(line)
line = self.readNextEndLine(stream)
if line[:9] != “startxref”:
raise utils.PdfReadError, “startxref not found”
except ValueError:
# FIX: startxref 44986738
a,v = line.split(‘ ‘)
startxref = int(v)
然后用pyinstaller 打包,就得到了这里的程序。