【问题标题】:Creating a pdf using Word VBA and Adobe Acrobat使用 Word VBA 和 Adob​​e Acrobat 创建 pdf
【发布时间】:2018-12-06 19:53:48
【问题描述】:

我正在尝试编写一个宏来创建 Word 文档的 pdf。

我用来执行此操作的代码使用 ActiveDocument.ExportAsFixedFormat。这在一定程度上可行,但在创建大型文档的 pdf 时往往会失败(我将使用此宏处理的一些文档会运行到数千页)。

我的理解是 ExportAsFixedFormat 方法使用 Word 内置的 PDF 创建方法。我真正想做的是使用 Adob​​e Acrobat 进行 PDF 转换。如果我通过单击 Word 中的导出为 pdf 按钮手动执行此操作(我的机器上安装了 Adob​​e Acrobat),那么一切都很好。它使用实际的 Adob​​e Acrobat PDF 转换,即使在大到足以导致 ExportAsFixedFormat 方法失败的文档上,我的 PDF 也可以毫无错误地创建。

我一直在尝试弄清楚如何使用 Acrobat 自动从 VBA 转换为 PDF,并将我的头撞在砖墙上。

我发现了 CreatePDFEx 方法,理论上它看起来应该可以满足我的要求,但我也发现了警告,指出这不是受支持的方法,不推荐使用。见这里:

https://forums.adobe.com/thread/286431

确实,当我尝试它时,它不起作用。

然后我发现了 AcroExch.AVDoc 和 AcroExch.PDDoc 对象,这看起来可能是另一种方式。例如,请参见此处:

https://forums.adobe.com/thread/301714

这还带有不支持的警告。当我尝试它时,它可以工作,但速度非常慢,即使只有几页的文档也是如此。我不想去想一个 5000 页的文档会是什么样子。

真的可以这样做吗?它似乎不应该是火箭科学,但我找不到任何有效的方法。

我想要做的就是从大型 Word 文档可靠地创建 pdf。我认为这样做的方法可能是弄清楚如何通过 VBA 使用 Adob​​e 的工具(有支持的方法吗?),但如果我能解决它的问题,我会对内置的 Word 方法非常满意大型文档失败。

非常感谢您的帮助。

编辑:我还应该提到我需要将我的 Word 标题作为 PDF 书签。 ExportAsFixedFormat 方法可以做到这一点,但其他一些方法却没有。

【问题讨论】:

    标签: vba pdf ms-word


    【解决方案1】:

    您可以使用 SaveAs 或 SaveAs2 方法保存为 PDF 而不是 ExportAsFixedFormat。例如:

    ActiveDocument.SaveAs FileName:="Filename.pdf", FileFormat:=wdFormatPDF

    【讨论】:

    • 我认为也使用了内置的Word pdf创建而不是Adobe版本,不是吗?
    • 是的,但这是一种完全不同的方法,会产生不同的结果。
    • 好的,我刚刚尝试过,在某种方式下它肯定会产生不同的结果。它不会像 ExportAsFixedFormat 方法那样将我的标题转换为 pdf 书签。我需要将我的标题转换为 pdf 书签,所以除非有一些秘密选项可以让 SaveAs2 方法做到这一点,否则我担心这种方法对我不起作用。
    【解决方案2】:

    多玩一点,我确实想出了一种方法,它是官方支持的方法并使用 Adob​​e PDF 创建器:

    ActivePrinter = "Adobe PDF"
    ActiveDocument.PrintOut
    

    问题在于它不会将我的 Word 标题转换为 PDF 书签。

    有谁知道是否可以在该代码中设置一些选项以便它这样做?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-29
      • 1970-01-01
      • 2019-01-20
      • 1970-01-01
      • 2021-06-07
      • 2013-08-02
      • 2012-09-06
      • 2017-09-27
      相关资源
      最近更新 更多