Microsoft.Office.Interop.Excel打印输出抛出错误

本文关键字:出错 错误 输出 打印 Office Interop Excel Microsoft | 更新日期: 2023-09-27 18:02:07

我在64位Windows 7桌面工作站的。net Framework 4.5 Windows Service项目中使用Microsoft.Office.Interop.Excel,除了PageSetup属性和更重要的是工作表对象的PrintOut方法之外,一切似乎都在工作。

代码如下:

Microsoft.Office.Interop.Excel.Application ExcelApp = null;
Microsoft.Office.Interop.Excel.Workbook WBook = new Microsoft.Office.Interop.Excel.Workbook;
Microsoft.Office.Interop.Excel.Worksheet WSheet = new Microsoft.Office.Interop.Excel.Worksheet);
ExcelApp = new Microsoft.Office.Interop.Excel.Application();
WBook = ExcelApp.Workbooks.Add();
WSheet = WBook.Worksheets[1];
//Do some stuff with the sheet
//None of this works, throws an error: Unable to set the Orientation property of the PageSetup class
WSheet.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlLandscape;
WSheet.PageSetup.Zoom = false;
WSheet.PageSetup.FitToPagesWide = 1;
WSheet.PageSetup.FitToPagesTall = false;
//Throws Error (see below)
WSheet.PrintOut(null, null, null, null, null, null, null);

PrintOut() Error:没有安装打印机。要安装打印机,请单击"文件"选项卡,然后单击"打印"。单击"未安装打印机",然后单击"添加打印机"。按照"添加打印机"对话框中的说明操作。

我在设备和打印机中定义了打印机。我将网络打印机设置为默认设置。我甚至把这台打印机添加到Win.ini中,因为我在其他帖子中看到过这样的推荐,但无济于事。

Microsoft.Office.Interop.Excel打印输出抛出错误

我是在写这个问题的时候想到这个的。

确保你的Windows服务是在一个设置了打印机和指定的默认打印机的帐户下运行的。我在本地服务帐户下运行服务,一旦我将其切换到在我的个人帐户下运行,PageSetup属性和PrintOut()方法都工作了!

相关文章: