在整理网上下载的PDF文件时,经常会遇到损坏的文档。一个个打开来检查的话耗时费力,于是就利用python的pyPdf库写了一个小程序。可以自动校验指定文件夹下的全部pdf文件,自动遍历其中的所有子文件夹。命令行独立运行,不依赖于任何PDF浏览工具。使用方法,在cmd命令行窗口中切换到程序目录
1 2 3 |
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 打包,就得到了这里的程序。
最好能有一个可以打开的文件列表,而不是只有不可以打开的文件列表
我用这个工具,有的能打开,但是却报打不开
这个软件只是测试python的PDF模块,类似的需求可用老马的PdfToy完美实现。
gerry你好,能否发一份pdftoy给我,邮箱:downdx@163.com
pdftoy不是免费软件,我也没有
如果你有邮箱的话,我可以发给你测试文件
大神,这个软件后面还有更新吗,用你提供的下载链接,使用的了,出现很多都是误判断了。是不是PDF模块有问题?
没有后续更新,主要是提供思路和测试。所依赖的pyPdf模块已经过时很久了
下载地址已经失效了,能不能发一个到我邮箱里,谢谢!
链接仍然有效,不过应该有更好的模块或软件了
我一开始点击上面的链接也下载不了,后来刷新了一下网页好像又可以了,好奇怪。如果有更好的模块或软件,欢迎推荐。