2015-11-06 41 views
0

我遇到了一个问题,我现在正在尝试解决大约一周的问题,并且我决定注册并询问您,因为我所尝试过的一切都失败了。在C#中打印WPF - PrintDialog.PrintVisual方法在一台计算机上工作,并且不能在其他计算机上工作

我有用C#编写的WPF应用程序。我最关心的是印刷。我有以下一段代码:

TransformedBitmap tb = new TransformedBitmap(); 
RotateTransform transform = new RotateTransform(90); 

tb.BeginInit(); 
tb.Source = myBitmapImage; 
tb.Transform = transform; 
tb.EndInit(); 

PrintDialog myPrintDialog = new PrintDialog(); 

var dv = new DrawingVisual(); 
using (var dc = dv.RenderOpen()) 
{ 
    dc.DrawImage(tb, new Rect(0, 0, myPrintDialog.PrintableAreaWidth, myPrintDialog.PrintableAreaHeight)); 
} 

myPrintDialog.PrintVisual(dv, "Image"); 

我在几台电脑上用不同的Windows版本试过这段代码。在Win 10,Win 8.1,Win 7上甚至在我以前的Win XP上都能正常工作。

但最近我试图用Win 8.1在华硕X553M上运行这个应用程序。应用程序在上面给出的代码后挂起。当然,没有什么是印刷的。

我接过仔细看看代码,我已经调试此代码,我弄清楚,它停在行:

myPrintDialog.PrintVisual(dv, "Image"); 

文件发送到打印机,但仅此而已发生。有趣的是,在打印机的队列文件中有状态:“缓冲”始终不变。我尝试过使用少量打印机,包括物理和虚拟打印机 - 同样的东西,永不结束缓冲...... 另一个奇怪的事情是,我测试了打印机,它们似乎工作正常。从打印机驱动程序打印测试页已成功。

对我来说这很奇怪,因为 - 正如我所说的 - 代码在其他计算机上工作正常。 最近几天我在网上搜索了答案,我已经清理并重置了Windows系统中的打印后台处理程序服务。我已经安装了华硕X553M Win 8的所有可能的更新,我甚至更新到Windows 10.我已经为新的管理员用户创建了一个新帐户,因为我认为用户配置文件可能已损坏。没有什么改变,仍然没有打印......应用程序仍然挂在那条线上。

我将不胜感激每一个线索,什么可能是错误的或我应该在哪里看...我指望你的建议。我必须让这台笔记本电脑(或我的应用程序)正常工作。改变笔记本电脑不是一种选择,所以你是我最后的希望。 在此先感谢!

+0

是否印刷工作? – Contango

+0

感谢您的关注。是的,我已经从Windows图片浏览器测试了打印,并且缓冲时间不到一秒,然后图片正在打印。 – Dario

回答

相关问题