from win32com.client.dynamic import Dispatch, ERRORS_BAD_CONTEXT
import os
import winerror
ERRORS_BAD_CONTEXT.append(winerror.E_NOTIMPL)
files = list(filter(lambda f: f.endswith('.pdf'), os.listdir()))
def pdf2word(f_path, d_path):
try:
AvDoc = Dispatch("AcroExch.AVDoc")
AvDoc.Open(f_path, "")
pdDoc = AvDoc.GetPDDoc()
jsObject = pdDoc.GetJSObject()
jsObject.SaveAs(d_path, "com.adobe.acrobat.docx")
print('ok')
except Exception as e:
print('error')
print(e)
finally:
pdDoc.Close()
AvDoc.Close(True)
os.mkdir('output')
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(f_path, d_path)
该程序将当前目录下的所有PDF文件转换为Word,并保存到output目录。