Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Word VBA和Adobe Acrobat创建pdf_Vba_Pdf_Ms Word - Fatal编程技术网

使用Word VBA和Adobe Acrobat创建pdf

使用Word VBA和Adobe Acrobat创建pdf,vba,pdf,ms-word,Vba,Pdf,Ms Word,我正在尝试编写一个宏来创建Word文档的pdf 我一直在使用的代码使用ActiveDocument.ExportAsFixedFormat。这在一定程度上是可行的,但在创建大型文档的pdf时(我将使用此宏处理的一些文档运行到数千页),它往往会失败 我的理解是ExportAsFixedFormat方法使用Word的内置PDF创建方法。我真正想做的是使用AdobeAcrobat进行PDF转换。如果我通过单击Word中的导出为pdf按钮手动执行此操作(我的机器上安装了Adobe Acrobat),则一

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

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

我的理解是ExportAsFixedFormat方法使用Word的内置PDF创建方法。我真正想做的是使用AdobeAcrobat进行PDF转换。如果我通过单击Word中的导出为pdf按钮手动执行此操作(我的机器上安装了Adobe Acrobat),则一切正常。它使用实际的AdobeAcrobatPDF转换,即使在大到足以导致ExportAsFixedFormat方法失败的文档上,我的PDF也不会出现错误

我一直在想如何使用Acrobat自动将VBA转换为PDF,我的头撞到了砖墙上

我发现了CreatePDFEx方法,从理论上看它应该做我想做的事情,但我也发现了一些警告,这是不受支持的方法,不推荐使用。请看这里:

事实上,当我尝试它时,它不起作用

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

这也带来了一个警告,它不受支持。当我尝试它时,它起了作用,但速度非常慢,即使文档只有几页。我讨厌去想5000页的文档会是什么样子

实际上有可能做到这一点吗?这似乎不应该是火箭科学,但我找不到任何有效的方法

我想要做的就是从大型Word文档中可靠地创建PDF。我认为实现这一点的方法可能是找出如何通过VBA使用Adobe的工具(有受支持的方法吗?),但是如果我能解决大型文档中无法使用的问题,我会非常满意内置Word方法

非常感谢你的帮助


编辑:我还应该提到,我需要我的单词标题最终成为PDF书签。ExportAsFixedFormat方法可以这样做,但其他一些方法不能这样做。

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


ActiveDocument.SaveAs FileName:=“FileName.pdf”,FileFormat:=wdFormatPDF

再仔细研究一下,我确实想出了一种官方支持的方法,并使用Adobe pdf creator:

ActivePrinter = "Adobe PDF"
ActiveDocument.PrintOut
问题是它不能将我的单词标题转换成PDF书签


有人知道是否可以在代码中设置一些选项吗?

我认为它也使用内置的Word pdf创建,而不是Adobe版本,不是吗?是的,但这是一种完全不同的方法,产生不同的结果。好吧,我刚刚尝试过,在某种程度上它肯定会产生不同的结果。它不会像ExportAsFixedFormat方法那样将我的标题转换为pdf书签。我需要将我的标题转换为pdf书签,因此,除非有某种秘密选项使SaveAs2方法能够做到这一点,否则我担心这个方法对我不起作用。