我已經使用pywin32在python中編寫了一個腳本來將pdf文件保存爲直到最近才正常工作的文本。我在Excel中使用類似的方法。代碼如下:「未實現」使用pywin32來控制Adobe Acrobat時出現異常
def __pdf2Txt(self, pdf, fileformat="com.adobe.acrobat.accesstext"):
outputLoc = os.path.dirname(pdf)
outputLoc = os.path.join(outputLoc, os.path.splitext(os.path.basename(pdf))[0] + '.txt')
try:
win32com.client.gencache.EnsureModule('{E64169B3-3592-47d2-816E-602C5C13F328}', 0, 1, 1)
adobe = win32com.client.DispatchEx('AcroExch.App')
pdDoc = win32com.client.DispatchEx('AcroExch.PDDoc')
pdDoc.Open(pdf)
jObject = pdDoc.GetJSObject()
jObject.SaveAs(outputLoc, "com.adobe.acrobat.accesstext")
except:
traceback.print_exc()
return False
finally:
del jObject
pdDoc.Close()
del pdDoc
adobe.Exit()
del adobe
但是這個代碼突然停止工作,我得到下面的輸出:
Traceback (most recent call last):
File "C:\Documents and Settings\ablishen\workspace\HooverKeyCreator\src\HooverKeyCreator.py", line 38, in __pdf2Txt
jObject.SaveAs(outputLoc, "com.adobe.acrobat.accesstext")
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 505, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
com_error: (-2147467263, 'Not implemented', None, None)
False
我已經用VB寫的類似代碼正常工作,所以我猜它與COM接口沒有正確綁定到適當的功能有關? (我的COM知識是不完整的)。
這是否PDF保存有使用權? (根據文檔中的猜測:「Adobe Reader中提供了此方法,用於具有Save使用權的文檔)。 – 2012-02-21 19:13:53
似乎沒有,但我啓用了它們,仍然出現相同的錯誤。另外,我使用的是Adobe Acrobat – Blish 2012-02-22 11:05:53