【问题标题】:VBA sending embedded OLE PDF with mailto:VBA 使用 mailto 发送嵌入式 OLE PDF:
【发布时间】:2014-05-19 18:50:00
【问题描述】:

问题: 将 PDF 嵌入 Excel 工作簿。 此 PDF 是一个反馈表,其中有一个发送到邮件收件人按钮。 如果不将其嵌入到 Excel 发送作品中,则嵌入发送会导致 Excel 崩溃。

我的想法是打开OLEObject,临时保存嵌入的PDF,关闭OLEObject 并打开保存的 PDF 以便它在 Acrobat 实例中运行。 打开 OLEObject 已经可以使用:

ThisWorkbook.Sheets(SheetName).Shapes(OLE_Name).Select
Selection.Verb Verb:=xlOpen

但我正在努力执行以下步骤。 这个怎么做? 可能的其他方式?

WIN7、Office 2010、Acrobat Reader

【问题讨论】:

  • 您是否只是想将 PDF 作为附件发送?您是否有任何理由需要在发送 PDF 之前打开它?
  • 嵌入的 PDF 是一个反馈表。我之所以要打开它是因为用户应该在发送之前填写一些数据。发送功能集成在 PDF 中,并将 PDF 作为邮件附件发送。
  • 好的。 OLEObjects 是出了名的难以使用。我曾经有一些代码试图对 XML/Text 文件执行类似的操作,但它不适用于那种类型的文件,而且似乎也不适用于 PDF。 Acrobat 支持一些 自动化但不多。我会看看我能不能弄清楚。
  • 仅供参考,这是may not be possible to do。为什么您需要将此文件嵌入到 Excel 工作簿中?这似乎不是非常可靠的存储/传输文件和数据的方式。

标签: vba pdf excel ole


【解决方案1】:

好的。 OLEObjects 是出了名的难以使用。我做了一些搜索,因为似乎很难相信这不受支持。这是我第一次尝试使用Shell 命令复制 OLE 并将其粘贴到已知目录。

但是,您不能复制/粘贴 PDF 嵌入对象,这意味着您不能使用 Shell 命令将其复制/粘贴到临时文件夹/文件路径。所以这行不通。

大家的共识似乎是这实际上是不可能的;您对嵌入式 PDF 所能做的就是打开它们。请参阅 herehere 引用此 PDF 的内容:

请参阅 OLE 自动化下的“AxAcroPDFLib.AxAcroPDF”部分。这些是您可以从 Reader 获得的唯一方法

还有,here:

您所做的事情取决于您知道如何与特定类进行交互,如果您只有几种类型并且知道它们是什么,这可能是可以的,但一般来说,除非(a)类支持自动化和(b ) 你知道发出这个的命令是行不通的。

该类并不真正支持您想要的那种自动化。

可能的解决方案

使用 Acrobat 和 WinAPI

如果您安装了 Acrobat,那么我相信您可以使用 WinAPI 获取 Acrobat 实例的 hWnd 并以这种方式控制它。 I have perused some documentation,但我没有 Acrobat,所以无法测试。

【讨论】:

    猜你喜欢
    • 2016-02-04
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-08-04
    • 2019-01-15
    • 1970-01-01
    • 2017-03-18
    相关资源
    最近更新 更多