Excel自动化:PDF导出原因“;“打印机设置”;弹出窗口

Excel自动化:PDF导出原因“;“打印机设置”;弹出窗口,excel,pdf,office-interop,office-2007,Excel,Pdf,Office Interop,Office 2007,我正在开发一个自动生成Excel到PDF的应用程序。在程序运行时,不时会出现以下弹出窗口(无任何明显原因): 32位应用程序的打印驱动程序主机已停止工作 不久之后,这一次: 打印机设置 我需要在这里做什么?我的应用程序并不太复杂。错误总是(100%)发生在这一行: _application.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, pdfTemplatePath, Excel.XlFix

我正在开发一个自动生成Excel到PDF的应用程序。在程序运行时,不时会出现以下弹出窗口(无任何明显原因):

32位应用程序的打印驱动程序主机已停止工作

不久之后,这一次:

打印机设置

我需要在这里做什么?我的应用程序并不太复杂。错误总是(100%)发生在这一行:

_application.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF,
    pdfTemplatePath, Excel.XlFixedFormatQuality.xlQualityStandard, 
    _, _, 1, pdfPrintAreaEnd);
其中涉及的变量为:

Excel := Microsoft.Office.Intertop.Excel
_application := Excel.Application
_ := System.Type.Missing
pdfPrintAreaEnd := int 6
异常消息如下所示:

System.Runtime.InteropServices.COMException (0x800A03EC):
    Exception from HRESULT: 0x800A03EC

这里发生了什么?更重要的是:为什么它只在一段时间内发生一次?

好的,在对这个问题进行了一些研究之后,我遇到了我认为是迄今为止遇到的Excel自动化最重要的事情之一

该错误消息与其他自动或非自动使用Excel的情况一致。所有这些情况的共同点是(扣上!)网络打印机被设置为默认打印机

没错-将网络打印机作为默认打印机,即使您使用完全不同的打印机打印或根本不使用打印机打印(如导出为PDF,这与打印为Adobe PDF打印机不同,对吗?),有时在某些计算机上也会导致此错误弹出


我已将默认打印机更改为内部打印机,如Microsoft XPS Document printer,并再次尝试,现在可以导出成百上千的PDF,而不会出现一次错误消息。

我的工作笔记本电脑也出现类似问题。尝试执行ActiveWorkbook时会弹出打印机设置。ExportAsFixedFormat类型:=xlTypePDF,文件名:=“\directory\MyFile”

网络打印机被设置为默认打印机。因此,我在windows资源管理器中导航到该打印机。这提示我输入网络密码。当我重新运行代码时,它工作得非常出色。(您可以通过在Windows搜索栏中键入“打印机”在Windows 10中找到打印机的位置。单击打印机和扫描仪,导航到您的网络打印机,然后单击管理->选择硬件属性。该位置将显示在打印机图像旁边。在我的情况下,打印机位置是在其名称中指定的)

总之,请确保您可以访问默认打印机。一个简单的测试是尝试使用默认打印机打印某些内容

如果您不介意更改默认打印机,请遵循上面的@F.p解决方案