2

我有一台染料子打印机,我正在尝试以编程方式发送图像进行打印。
我在 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 的默认打印对话框中正常工作。
使用常规激光打印机打印时,代码可以正常工作。
我完全被难住了。

4

1 回答 1

1

错误代码 0xc1

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

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

于 2013-03-02T02:46:34.657 回答