使用PrintDocument时出错

时间:2013-03-02 01:22:58

标签: c# .net printing exception-handling printdialog

我有一台染料子打印机,我试图以编程方式发送图像进行打印 我在Windows 7 64b上使用PrintDocument和一个带有C#4.0的PrintPage 打印失败,Windows出现此错误:

The print spooler failed to load a plug-in module 
C:\Windows\system32\spool\DRIVERS\x64\3\S6145UI.DLL, error code 0xc1

使用Window的默认打印对话框,打印机工作正常 使用普通激光打印机打印时,代码可以正常工作 我完全难过了。

1 个答案:

答案 0 :(得分:1)

  

错误代码0xc1

那是ERROR_BAD_EXE_FORMAT。在64位版本的Windows上不是一个不常见的错误,而是打印机驱动程序的主要失败鲸。当64位进程尝试加载32位DLL时,您将收到此错误。或者相反。

显然驱动程序在这里有问题,你应该寻找更新。一种可能的解决方法是强制您的程序以另一种模式运行,这对于托管程序来说很容易。右键单击EXE项目,“属性”,“构建”选项卡。更改平台目标设置,在AnyCPU与x86之间翻转。在VS2012上切换Prefer 32位模式复选框。实际上并不确定这是否有效,假脱机程序是它自己的子系统。我认为有一种方法可以强制假脱机程序以32位模式运行旧打印机驱动程序,在superuser.com上询问它