我有一个 Silverlight 5 OOB 应用程序(具有提升的权限),它刚刚部署到我们的一些用户。其中一些用户报告说打印出来的是空白或非常模糊。这些打印机确实可以正确打印 Word 文档,但我无法在我自己的打印机上重现该问题。
所有用户都使用 Windows XP SP3 32 位,我正在开发 Win7 64 位。
以前有人见过这个问题吗?或者任何想法可能导致这种情况?
非常感谢帮助。
非常感谢,安德鲁
我有一个 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 类型应用程序中的打印更加稳定。