【发布时间】:2019-07-02 14:46:11
【问题描述】:
所以基本上,我制作了一个简单的 asp.net 网站,当您单击按钮时会打印出页面。当您打印出来时,它会询问我将使用哪台打印机和哪些选项。我的目标是直接打印页面而不问我打印机和选项。谢谢你的帮助。
我在 Visual Studio 2015 上运行这个程序。
c# asp.net
function printpage() {
var getpanel = document.getElementById("<%= Panel1.ClientID%>");
var MainWindow = window.open('', '', 'height=500,width=800');
MainWindow.document.write('<html><head><title>Print Page</title>');
MainWindow.document.write('</head><body>');
MainWindow.document.write(getpanel.innerHTML);
MainWindow.document.write('</body></html>');
MainWindow.document.close();
setTimeout(function ()
{
MainWindow.print();
}, 500);
return false;
}
HTML (aspx)
<asp:Button ID="Button1" runat="server" OnClientClick="return printpage();" Text="Print Page" />
我没有任何错误程序运行正常。
【问题讨论】:
-
您无法从网页控制打印机。这将始终取决于用户。 @sr28,我认为这个问题是关于 winforms 的。
-
以上链接适用于用户空间 .net 应用程序而非网页。正如@VDWWD 所说,由于浏览器沙盒,您不能直接调用打印机。
-
我想您可以通过使用可访问本机平台 API 的 ActiveX 控件或 Java 小程序来解决它 - 当然,假设浏览器也不会阻止这些.
-
您是否有特殊原因不希望您的用户能够决定他们可能想要使用的“打印机” - 他们可能想要使用默认打印机以外的其他东西,例如创建一个带有合适的虚拟打印机驱动程序的 PDF 文件,而不是硬拷贝。