【问题标题】:How to do Silent Printing? [duplicate]如何进行无声打印? [复制]
【发布时间】: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 文件,而不是硬拷贝。

标签: c# asp.net


【解决方案1】:

这对于一般情况是不可能的。作为一种安全措施,它被阻止,以防止您的打印机收集用于污染传真机的同类垃圾。

唯一的解决方法是通过浏览器插件(flash、silverlight、unity、java 等),或者如果您的网络服务器恰好与最终用户的浏览器位于同一本地网络上。

【讨论】:

  • 可以通过浏览器扩展来实现。打印机属性由用户控制,因此用户需要接受它(安全性),然后您可以调用它并在屏幕尺寸之外打开打印窗口并打印。
  • @PowerMouse 操作想要跳过打印对话框。使用股票网络浏览器无法做到这一点。
  • -我在 2003 年通过为浏览器使用 ActiveX 插件使其工作。并在屏幕边界外打开打印窗口。设置为横向并发送到打印机。
  • @PowerMouse ...这就是为什么我将插件作为潜在的解决方法。但 ActiveX 不再是一种选择。
  • 同意。除了技术之外,如果用户有权安装插件,则可以实现。所以在展台模式下它可能无法正常工作。
猜你喜欢
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-11
  • 2013-03-11
  • 2014-02-06
  • 2022-11-24
  • 1970-01-01
相关资源
最近更新 更多