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:

https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/index.html
 
Adobe Acrobat DC SDK 开发:
https://blog.csdn.net/lc316546079/article/details/72674485
 
Acrobat & PDF Scripting Learning Center & Library:
https://www.pdfscripting.com/
 
Entering folder level scripts:
https://acrobatusers.com/tutorials/folder_level_scripts/
 

自动完成PDF转Word:
https://cloud.tencent.com/developer/article/1987395

 

PDF中的Javascript利用:
http://blog.nsfocus.net/pdf-vul/

 

 

 
 
 
 
 
 
 
posted @ 2022-10-22 21:48  dontbealarmedimwithy  阅读(944)  评论(0编辑  收藏  举报