gpt4 book ai didi

windows - Win32com 使用 Acrobat Pro X 将 PDF 保存为 XML > com_error "-2147467263, ' 未实现'"

转载 作者:可可西里 更新时间:2023-11-01 14:50:30 25 4
gpt4 key购买 nike

<分区>

  • Win32 上的 Python 2.7(r27:82525,2010 年 7 月 4 日,09:01:59)[MSC v.1500 32 位(英特尔)]
  • Windows XP SP3
  • Python 2.7 pywin32-218
  • Adobe Acrobat X 10.0.0

我想使用 Python 使 Acrobat Pro 自动将 PDF 导出为 XML。我已经使用运行程序中的“另存为”对话框手动尝试过,现在想通过 Python 脚本来完成。我已经阅读了很多页面,包括 Adob​​e SDK 的部分内容、SDK 论坛、VB 论坛,但没有成功。

我在这里阅读了 Blish 的问题:"Not implemented" Exception when using pywin32 to control Adobe Acrobat

还有这个页面:timgolden python/win32_how_do_i/generate-a-static-com-proxy.html

我错过了一些东西。我的代码是:

import win32com.client
import win32com.client.makepy

win32com.client.makepy.GenerateFromTypeLibSpec('Acrobat')
adobe = win32com.client.DispatchEx('AcroExch.App')
avDoc = win32com.client.DispatchEx('AcroExch.AVDoc')
avDoc.Open('C:\Documents and Settings\PC\Desktop\a_PDF.pdf', 'C:\Documents and Settings\PC\Desktop')
pdDoc = avDoc.GetPDDoc()
jObject = pdDoc.GetJSObject()
jObject.SaveAs('C:\Documents and Settings\PC\Desktop\a_PDF.xml', "com.adobe.acrobat.xml-1-00")

完整的错误是:

Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
jObject.SaveAs('C:\Documents and Settings\PC\Desktop\a_PDF.xml', "com.adobe.acrobat.xml-1-00")
File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 511, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
com_error: (-2147467263, 'Not implemented', None, None)

我猜它与 make.py 有关,但我不明白如何在我的代码中实现它。

我从我的代码中提取了这一行,但在运行时遇到了同样的错误:

win32com.client.makepy.GenerateFromTypeLibSpec('Acrobat')

然后我将这两行从 'DispatchEX' 更改为 'Dispatch' 并出现相同的错误:

adobe = win32com.client.Dispatch('AcroExch.App')
avDoc = win32com.client.Dispatch('AcroExch.AVDoc')

当我自己运行 Dispatches 然后调用它们时,我得到:

>>> adobe = win32com.client.DispatchEx('AcroExch.App')
>>> adobe
<win32com.gen_py.Adobe Acrobat 10.0 Type Library.CAcroApp instance at 0x18787784>
>>> avDoc = win32com.client.Dispatch('AcroExch.AVDoc')
>>> avDoc
<win32com.gen_py.Adobe Acrobat 10.0 Type Library.CAcroAVDoc instance at 0x20365224>

这是否意味着我应该只调用一次 Dispatch?我拉:

adobe = win32com.client.Dispatch('AcroExch.App')

得到了同样的错误。

这个 Adob​​e 网站说:

AVDoc    
Product availability: Acrobat, Reader
Platform availability: Macintosh, Windows, UNIX
Syntax
typedef struct _t_AVDoc* AVDoc;

A view of a PDF document in a window. There is one AVDoc per displayed document. Unlike a PDDoc, an AVDoc has a window associated with it.
  • acrobat_sdk/9.1/Acrobat9_1_HTMLHelp/API_References/Acrobat_API_Reference/AV_Layer/AVDoc.html#AVDocSaveParams

PDDoc 页面说:

A PDDoc object represents a PDF document. There is a correspondence between a PDDoc and an ASFile. Also, every AVDoc has an associated PDDoc, although a PDDoc may not be associated with an AVDoc.
  • /9.1/Acrobat9_1_HTMLHelp/API_References/Acrobat_API_Reference/PD_Layer/PDDoc.html

我尝试了下面的代码,也得到了同样的错误:

import win32com.client
import win32com.client.makepy

pdDoc = win32com.client.Dispatch('AcroExch.PDDoc')
pdDoc.Open('C:\Documents and Settings\PC\Desktop\a_PDF.pdf')
jObject = pdDoc.GetJSObject()
jObject.SaveAs('C:\Documents and Settings\PC\Desktop\a_PDF.xml', "com.adobe.acrobat.xml-1-00")

如果我改变同样的错误:

pdDoc = win32com.client.Dispatch('AcroExch.PDDoc')

pdDoc = win32com.client.gencache.EnsureDispatch('AcroExch.PDDoc')

喜欢这里:win32com.client.Dispatch works but not win32com.client.gencache.EnsureDispatch

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com