我试图使用一个简单的批处理文件打开几个PDF文档:
ECHO OFF
CLS
cd Program Files\Adobe\Reader 9.0\Reader
Acrord32.exe C:\Users\BW1.pdf
Acrord32.exe C:\Users\BW2.pdf
Acrord32.exe C:\Users\BW3.pdf
Acrord32.exe C:\Users\BW4.pdf
Acrord32.exe C:\Users\BW5.pdf
Acrord32.exe C:\Users\BW6.pdf
EXIT
Run Code Online (Sandbox Code Playgroud)
上面的批处理文件只打开第一个PDF,然后等到我关闭它以打开下一个PDF文件.如何同时打开所有PDF文档?(比如去Acrobat Reader,file-> Open-> xx.pdf)
我已经构建了一个C#.NET应用程序,它使用Adobe ActiveX控件来显示PDF.
它依赖于随应用程序一起提供的几个DLL.这些DLL与计算机上安装的本地安装的Adobe Acrobat或Adobe Acrobat Reader交互.
这个应用程序已被一些客户使用,并且几乎适用于所有用户(我检查本地计算机是否至少运行了Acrobat或Reader的版本9).
我发现在尝试加载时(当加载activex控件时)应用程序返回错误消息"错误HRESULT E_FAIL已从调用COM组件返回"的3种情况.
我已经检查了这些用户的其中一台机器,并且安装了Acrobat 9并且经常使用它没有任何问题.看来Acrobat 7和8一次安装,因为它们与Acrobat 9一起在注册表中有条目.
我不能在本地重现这个问题,所以我不确定到底要走哪个方向.
堆栈跟踪顶部的错误是:System.Runtime.InteropServices.COMException(0x80004005):错误HRESULT E_FAIL已从对COM组件的调用返回.
对此错误的一些研究表明它是一个注册表问题.
有没有人知道如何修复或解决这个问题,或者确定如何找到问题的核心根?
错误消息的完整内容如下:
System.Runtime.InteropServices.COMException(0x80004005):错误HRESULT E_FAIL已从对COM组件的调用返回.System.Windows.Forms.AxHost.CreateWithLicense的System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)上的System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid&clsid,Object punkOuter,Int32 context,Guid&iid)(字符串许可证) System.Windows.Forx.AxHost上的System.Windows.Forms.AxHost.GetOcxCreate()处的System.Windows.Forms.AxHost.CreateInstance()处的System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)中的Guid clsid) System.Windows上System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)的System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)上的System.Windows.Forms.AxHost.CreateHandle()处的.TransitionUpTo(Int32状态) .Asms.AxHost.EndInit()在AcrobatChecker.InitializeComponent()AcrobatChecker.Viewer..ctor()在AcrobatChecker.Form1.btnViewer_Click(Object sender,EventArgs e)的System.Windows.Forms.Control.OnClick(EventArgs) e)System.Wind上的System.Windows.Forms.Button.OnClick(EventArgs e)在System.Windows的System.Windows.Forms.Control.WndProc(Message&m)处的System.Windows.Forms.Control.WmMouseUp(Message&m,MouseButtons按钮,Int32单击)处的ows.Forms.Button.OnMouseUp(MouseEventArgs mevent). System.Windows.Fornd.WandProc(Message&m)位于System.Windows.Fornd.Bandton.WndProc(Message&m)的System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)at System.Windows.Forms.Control.ControlNativeWindow. System.Windows.Forms.NativeWindow.Callback的WndProc(Message&m)(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam)
我试图找到一种方法来阻止浏览器缓存使用流式方法加载的PDF.
FireFox和Chorme使用以下标题处理得很好,并且不会缓存任何pdf文件:
Response.AddHeader("Pragma","no-cache,no-store"); Response.AddHeader("Cache-Control","no-cache,no-store,must-revalidate,max-age = 0"); Response.AddHeader("Expires"," - 1");
虽然,IE 7(使用acrobat reader 9.4.1)仅适用于以下标头并阻止PDF文档的缓存:
Response.AddHeader("Pragma","no-cache,no-store"); Response.AddHeader("Cache-Control","private,must-revalidate,max-age = 0"); Response.AddHeader("Expires"," - 1");
当我试图使用IE 7与Acrobat Reader 10时,无论我尝试什么,上面的标题都没有任何不同并缓存PDF.
当我试图放置Cache-Control:no-cache,no-store时,根本没有加载pdf.根据我的理解,IE使用缓存机制来加载PDF文档.
是否有人熟悉全局或特定方式(例如使用其他标题)可以帮助防止缓存PDF文档?
是否有任何OpenSource项目将在Linux中运行以编辑PDF文档,特别是在PDF文档中编辑Acrobat JavaScript?
我有一些PDF,我正在尝试将包含在Acrobat Reader中的文本剪切并粘贴到HTML表单中.似乎这些文件中的一些使用(我怀疑)unicode用于文本编码,所以当我尝试粘贴到HTML表单(在firefox上)时,我得到了带有十六进制字符的小盒子而不是可读文本.问题不在于PDF没有被OCR - 当我尝试在Acrobat Pro中这样做时它说它不能,因为该文件已经包含可渲染文本.有什么方法可以解决这个问题吗?例如,我可以在转换的表单中添加某种javascript吗?
我正在使用acrobat.tlb库解析.pdf
在连续删除连字符的新行中,连字符被分开.
例如ABC-123-XXX-987
解析为:
ABC
123
XXX
987
如果我使用iTextSharp解析文本,它会解析文件中显示的整个字符串,这是我想要的行为.但是,我需要在.pdf和iTextSharp中突出显示这些字符串(序列号),而不是将突出显示放在正确的位置...因此acrobat.tlb
我在这里使用此代码:http://www.vbforums.com/showthread.php?561501-RESOLVED-2003-How-to-highlight-text-in-pdf
' filey = "*your full file name including directory here*"
AcroExchApp = CreateObject("AcroExch.App")
AcroExchAVDoc = CreateObject("AcroExch.AVDoc")
' Open the [strfiley] pdf file
AcroExchAVDoc.Open(filey, "")
' Get the PDDoc associated with the open AVDoc
AcroExchPDDoc = AcroExchAVDoc.GetPDDoc
sustext = "accessorizes"
suktext = "accessorises"
' get JavaScript Object
' note jso is related to PDDoc of a PDF,
jso = AcroExchPDDoc.GetJSObject
' count
nCount = 0
nCount1 = 0 …Run Code Online (Sandbox Code Playgroud) 我在 Adobe Acrobat Pro 11 的 Action Wizard 中构建了一个动作,并将其命名为“myAcrobatAction”。
我想使用 VBA 代码在 Outlook 中自动使用它。
有没有办法通过命令行或其他方式调用用户定义的 Acrobat 操作,以便我能够在 VBA 代码中插入命令以从 Outlook/Excel 等应用程序执行它?
我正在寻找一种方法来替换现有 PDF 文件中的图像(设置为模板)。
在完美的世界中,我可以在命令行上运行一个命令(linux或windows都可以,我不挑剔),但是,如果需要的话,我也可以使用脚本语言甚至完整的程序来实现一些东西这点(我有视觉工作室)。
老实说,我简直不敢相信在某个地方找到这样的例子是多么困难。
我们运行的是带有 Cygwin 的 Windows,并拥有 Acrobat Pro XI 以及最初创建 PDF 文件的 Illustrator CS6。
本质上,我们正在寻找一种有效的方法来替换我们发送到印刷厂的 PDF 文件的图像。
我在Excel-VBA中编写了一个小实用程序,它还在一些单独的.pdf文件中与Acrobat Javascript交互.
该代码已经过广泛测试,并且在我的台式PC上完全按照预期运行.但是,我最终需要在Microsoft Surface平台上实现此代码.当我尝试从Microsoft Surface上的Excel文件运行相同的代码时,代码在任何行使用"GetJSObject".
例如.以下在我的电脑上工作正常,但在Surface上导致"对象或方法不受支持"错误.
Set gAPP = CreateObject("AcroExch.App")
Set gPDDOC = CreateObject("AcroExch.PDDoc")
If gPDDoc.Open(pdfFileName) Then Set jso = gPDDOC.GetJSObject
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经能够在网上找到一些提示,GetJSObject在64位环境中不能正常工作,我的Surface运行64位Windows 10和32位Excel.
但是,我认为仅凭这一点就不能解释两台机器的行为差异; 我的桌面运行64位Windows 7和32位Excel,一切都按预期工作.
我应该在哪里寻找帮助发现问题的来源(和解决方案)?
编辑/更新:getJSObject语句实际上按预期工作,如果我在运行我的VBA代码之前采取了在Acrobat中手动打开一个相关.pdf文件的副本的附加步骤.我认为这意味着它在某种程度上是对象定义(例如Set gAPP = CreateObject("AcroExch.App"))在Surface上相对于我的PC的工作方式不同 - 而不是具体的getJSObject命令,如最初的想法?
到目前为止,它对我来说没有多大意义如何/为什么这是真的(更不用说我如何解决这个问题了).
Sheets("Key Indicators").ExportAsFixedFormat Type:=xlTypePDF,
Filename:=ArchivePath, Quality:=xlQualityStandard,
IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
Run Code Online (Sandbox Code Playgroud)
目前这就是我所拥有的.
我理解如何ExportAsFixedFormat PDF,但我需要知道的是使用VBA访问Acrobat下的Create PDF功能(如下图所示).如果我执行ExportAsFixedFormat,链接会变平.Acrobat"创建PDF"允许我将Excel转换为包含超链接的PDF.
我该怎么办?
我使用的是Excel 2016和Adobe Pro DC