Powershell 不能使用席上的AcROCAT XJS对象 我的机器上安装了AcROATX-Pro。< /P>
我正在尝试编写PowerShell代码,使用诸如和的技术从PDF文档中提取页面 当我在Powershell 不能使用席上的AcROCAT XJS对象 我的机器上安装了AcROATX-Pro。< /P>,powershell,pdf,automation,acrobat,Powershell,Pdf,Automation,Acrobat,我正在尝试编写PowerShell代码,使用诸如和的技术从PDF文档中提取页面 当我在GetPDDoc()的输出上调用GetJSObject()时,我得到一个系统。\u ComObject,它不公开我找到的各种示例代码中使用的任何方法: PS> $JavaScriptObject System.__ComObject PS> $JavaScriptObject.GetType() Value does not fall within the expected range. At l
GetPDDoc()
的输出上调用GetJSObject()
时,我得到一个系统。\u ComObject
,它不公开我找到的各种示例代码中使用的任何方法:
PS> $JavaScriptObject
System.__ComObject
PS> $JavaScriptObject.GetType()
Value does not fall within the expected range.
At line:1 char:1
+ $JavaScriptObject.GetType()
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OperationStopped: (:) [], ArgumentException
+ FullyQualifiedErrorId : System.ArgumentException
PS> $JavaScriptObject.numPages -eq $null
True
有线索吗
注意:完全相同的逻辑在VBS中使用来自的代码工作,因此,这是一个老问题,您可能早就从这个问题开始了,或者已经解决了这个问题。我试图在PowerShell中完成一些涉及Acrobat自动化的任务,但遇到了同样的问题,我认为一个可靠的谷歌搜索可以帮我解决这个问题。不幸的是,你的结果是我能找到的唯一相关结果,而你似乎从未得到答案 如果有其他人到这里来,这就是我的工作,在这个例子中。我是在Windows10机器上用PowerShellV5做这件事的。我强烈怀疑问题在于com对象与PowerShell v5的接口方式。如果我打开一个命令行提示符并启动“powershell-version 2”,那么$jsObject就可以了,我可以从对象调用extractPages、numPages等到我的心脏内容,而不会由GetType()返回“不在预期范围内”错误。我知道你不应该根据意见来回答,但这是我的怀疑,这可以解释(向我)为什么加载旧版本的powershell会起作用。耸耸肩。我可能错了,问题出在其他地方,但希望这能帮助某些人,某些地方 哦,顺便说一句,我认为您需要改变从$jsObject调用方法的方式,并使用反射。一个简短的代码片段示例:
$jType = $jsObject.GetType()
$extractPagesBFs = [System.Reflection.BindingFlags]"InvokeMethod","Public","Instance"
$jType.InvokeMember("extractPages", $extractPagesBFs, $null, $jsObject, $extractPagesParam)
我从来没能让$jsObject.
工作过(也许我错过了一些东西…)。我不清楚为什么vbs可以直接访问像您链接的示例中那样的函数 是的,VBA工作得很好,powershell meh