微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 5不能在某些打印机上打印

我有一个Silverlight 5 OOB应用程序(具有高架权限),刚刚部署到我们的一些用户.
其中一些用户正在报告打印出来的空白或非常微弱.
这些打印机正确打印Word文档,我无法在自己的打印机上重现问题.

所有用户都在Windows XP SP3 32位,而我正在开发Win7 64位.

以前有人看到这个问题吗?还是任何想法可能导致这个?

帮助非常感谢

非常感谢,
安德鲁

解决方法

我应该得到解决方案可能对你有用………………………..

首先,我创建了一个新的PrintDocument,并为其PrintPage事件挂接了一些处理程序.

mobjPrintDocument = New PrintDocument
RemoveHandler mobjPrintDocument.PrintPage,AddressOf Print_Report
AddHandler mobjPrintDocument.PrintPage,AddressOf Print_Report

然后我们可以在打印时调用PrintDocument上的PrintBitmap函数.在这里,当用户单击打印按钮时,我正在做.

Private Sub xbtnPrint_Click(sender As System.Object,e As System.Windows.RoutedEventArgs)
    mintPageIndex = 0
    mobjPrintDocument.PrintBitmap(FileName)
  End Sub

现在是重要的部分.我们可以通过挂接到PrintPage事件(如上所述)来劫持目标的内容.我可以将e.PageVisual设置为任何可视化的xaml元素,并且PrintBitmap将处理它.在这里我使用GetPages函数和循环来确保我打印每个页面(pdfviewer元素).但是,您可以将其指向像我说的任何可视元素.

Private Sub Print_Report(sender As System.Object,e As PrintPageEventArgs)
    e.PageVisual = xobjReportViewer.GetPages(mintPageIndex)
    mintPageIndex += 1
    e.HasMorePages = mintPageIndex < xobjReportViewer.GetPages.Count
  End Sub

e.HasMorePages允许您强制触发此事件,直到完成.

希望对人有帮助.使用Silverlight 5和Post-Script打印机支持,具有PostScript仿真器的大量打印机可能不兼容,但也不会认为位图打印.此解决方法修复了这一点,使得在LOB类型应用程序中打印更稳定.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐