Excel自动化:PDF导出导致"打印机设置"弹出窗口

F.P*_*F.P 6 pdf excel office-2007 office-interop

我正在开发一个自动Excel到PDF生成的应用程序.每隔一段时间(并且没有任何明显的原因,程序运行时会出现以下弹出窗口:

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

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

不久之后,这一个:

打印机设置

打印机设置弹出窗口

我需要做什么,如果有的话?我的申请并不复杂.错误总是(100%)发生在这一行:

_application.ActiveWorkbook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF,
    pdfTemplatePath, Excel.XlFixedFormatQuality.xlQualityStandard, 
    _, _, 1, pdfPrintAreaEnd);
Run Code Online (Sandbox Code Playgroud)

有问题的变量是:

Excel := Microsoft.Office.Intertop.Excel
_application := Excel.Application
_ := System.Type.Missing
pdfPrintAreaEnd := int 6
Run Code Online (Sandbox Code Playgroud)

异常消息如下:

System.Runtime.InteropServices.COMException (0x800A03EC):
    Exception from HRESULT: 0x800A03EC
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?而且,更重要的是:为什么它偶尔会发生在每一个人身上?

F.P*_*F.P 9

好的,经过对此事的一些研究后,我遇到了我认为迄今为止我遇到过的Excel自动化最令人困惑的事情之一.

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

这是正确的 - 即使您使用完全不同的打印机打印或根本没有打印机(例如,在导出为PDF的情况下,与打印到例如Adobe PDF打印机不同,对吧?),默认使用网络打印机.它会弹出的某些机器上导致此错误.

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