我正在开发一个需要以下功能的应用程序:用户单击网页上的按钮,这会导致打印文档而无需任何其他用户干预。
我用来提供此功能的方法是在网页中嵌入Windows控件(使用Windows控件库)。 (这里有一个关于这样做的教程。)我学习了类似的教程,正确创建并显示了Windows Control。
下一步是尝试实际打印。我首先测试了打印代码是一个独立的应用程序,以确保它正常运行。确实如此。我为那些感兴趣的人提供了该代码的简化版本(见下文)。
代码被激活的具体方式是:这一行代码,.Attributes.Add(“OnClick”,“myPrintFunction();”)出现在Page_Load中,用于将JavaScript函数与按钮相关联。这个JavaScript函数非常简单:
function myPrintFunction() {
var winCtrl = document.getElementById("MyWinControl");
winCtrl.doMyPrintFunction();
}
问题是:代码抛出以下错误:
mscorlib:请求获得类型'System.Drawing.Printing.PrintingPermission,System.Drawing,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'的权限失败。
我需要更改哪些权限才能使其正常工作?我找到的一个网页似乎暗示设置Trust = Full可能有所帮助,但不清楚a)这是否有用,或者b)如何做到这一点。
感谢您的帮助!
打印代码:
Public Class MyWinControl
Public Sub doMyPrintFunction()
Dim prtMyDoc As PrintDocument = printerSetup()
If (Not prtMyDoc Is Nothing) Then prtMyDoc.Print()
End Sub
Private Function printerSetup() As PrintDocument
Dim prtMyDoc As New PrintDocument
AddHandler prtMyDoc.PrintPage, AddressOf prtMyDoc_PrintPage
prtMyDoc.PrinterSettings.PrinterName = "<my default printer>"
Return prtMyDoc
End Function
Private Sub prtMyDoc_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
' use graphics native call to build up page to be printed
' it is accessed via e.Graphics
End Sub
End Class
答案 0 :(得分:0)
你在这里咆哮着错误的树。除非用户中的每一个都具有相同的设置,否则这对用户的一小部分永远不会起作用。使用javascript的打印支持来打印网页,并允许用户对其进行一些控制。还有更多,你只是没有得到整个“基于网络的应用程序”的想法。
如果您需要一些严格的格式或想要打印Word文档或PDF等内容,您只需将文件推送给用户并允许他们自己处理/打印。