Python调用Acrobat DC Pro的程序

/ 默认分类 / 没有评论 / 745浏览

主要利用了Adobe Acrobat DC软件的能力

安装win32com

pip install win32com

如果直接pip installl win32com可能找不到安装包。

若要使用win32com模块,则可以使用 python -m pip install pypiwin32命令:

下载Adobe Acrobat DC

https://helpx.adobe.com/cn/download-install.html

执行代码

# 导入必要的库
from win32com.client.dynamic import Dispatch, ERRORS_BAD_CONTEXT
import os
import winerror

# 将 winerror.E_NOTIMPL 添加到 ERRORS_BAD_CONTEXT 列表中,以处理特定错误
ERRORS_BAD_CONTEXT.append(winerror.E_NOTIMPL)

# 获取当前目录中所有以 ".pdf" 结尾的文件
files = list(filter(lambda f: f.endswith('.pdf'), os.listdir()))

# 定义一个函数将 PDF 文件转换为 Word 文档
def pdf2word(f_path, d_path):
    try:
        # 创建 Acrobat 文档对象
        AvDoc = Dispatch("AcroExch.AVDoc")

        # 打开 PDF 文件
        AvDoc.Open(f_path, "")

        # 获取 PDF 文档对象
        pdDoc = AvDoc.GetPDDoc()

        # 获取 JavaScript 对象
        jsObject = pdDoc.GetJSObject()

        # 将 PDF 文档另存为 Word 文档
        jsObject.SaveAs(d_path, "com.adobe.acrobat.docx")

        # 打印转换成功信息
        print('ok')
    except Exception as e:
        # 打印转换失败信息
        print('error')
        print(e)
    finally:
        # 关闭 PDF 文档
        pdDoc.Close()

        # 关闭 Acrobat 文档
        AvDoc.Close(True)

# 创建 "output" 目录用于存储转换后的 Word 文档
os.mkdir('output')

# 遍历所有 PDF 文件
for file in files:
    # 打印正在转换的文件名
    print('convert:', file)

    # 获取输出文件路径
    out_file = file.replace('.pdf', '.docx')
    f_path = os.path.abspath(file)
    d_path = os.path.abspath('output/' + out_file)

    # 调用 pdf2word 函数进行转换
    pdf2word(f_path, d_path)