python 调用Adobe Acrobat 将pdf 转 excel
最近需要批量转换一些pdf 扫描件,就开始找相关的python包
花了不少时间试了下 pdfplumber,pypdf2,camelot 这几个包 发现都不能成功的转化,原因就在于 手上的pdf 是扫描件, 并不是excel格式的pdf文件
pdf扫描件 其实就是张图片, 如果要转excel 应该是需要ocr识别 然后再处理数据后 导出, 没太多时间研究这个也就放弃这个想法了
之前使用过acrobat转化, 搜了下果然有 相关python 调用的acrobat的方法(acrobat 支持 javascript )
一通操作后 终于成功, 下面把错误的几个点记录下
1.(-2147352567, '发生意外。', (1001, 'Acrobat JavaScript', 'NotAllowedError: 安全性设置禁止访问本属性或方法。', None, 0, 0), None)
被这个报错困扰好久 好久, 一直以为是 acrobat 中的问题, 修改了相关配置, 添加 Privileged context, 调整输出文件位置 都不行,
最后发现是自己的把保存的文件名给写错了(大小写未替换的问题), 相当于对源文件进行了覆盖导致的报错...
2.vscode 文件位置信息:
平时使用 os.path.realpath(os.path.dirname(sys.argv[0])) 返回文件位置, 但在vscode 返回的是 ipykernel_launcher.py
查了下 原因是 在jupyter notebook中调用时,sys.argv的值为ipykrnel_launcher.py
解决的链接:https://blog.csdn.net/wmq104/article/details/123534597
空了把代码传上来
一些找到相关信息的链接:
PDF 中 JavaScript 的安全性风险:
https://helpx.adobe.com/cn/acrobat/using/javascripts-pdfs-security-risk.html
Privileged context:
https://www.experts-exchange.com/questions/26922471/Why-do-I-get-a-NotAllowedError-Security-settings-prevent-access-to-this-property-or-method-when-trying-to-Use-SaveAs-in-Acrobat-9-Pro.html
Using trusted functions:
https://acrobatusers.com/tutorials/using_trusted_functions/
Converting a PDF to a different file format:
https://acrobatusers.com/tutorials/how-save-pdf-acrobat-javascript/
Acrobat-PDFL SDK: JavaScript APIs:
自动完成PDF转Word:
https://cloud.tencent.com/developer/article/1987395
PDF中的Javascript利用:
http://blog.nsfocus.net/pdf-vul/