一尘不染

HTML / JavaScript一键式打印(无对话框)

html

是否可以有一个绕过打印对话框的打印选项?

我正在一个封闭的系统上工作,希望能够预定义打印对话框的设置。并在单击按钮后立即处理打印。

从我阅读的内容来看,每种浏览器的执行方法都不同。例如,IE将使用ActiveX。Chrome / Firefox需要扩展。基于此,看来我将不得不用C
++编写一个应用程序,该应用程序可以处理浏览器传递的参数,以使用正确的格式(用于标签)自动打印。然后,我必须将其重写为Chrome /
Firefox的扩展。最终结果是,我们封闭系统上的用户将不得不下载/安装这些功能,具体取决于他们使用的浏览器。

我希望有另一种方法可以解决此问题,但是此任务很可能违反了浏览器安全性问题。


阅读 477

收藏
2020-05-10

共1个答案

一尘不染

我最终实现了一个自定义应用程序,该程序的工作原理与NexusModManager非常相似。我编写了一个注册自定义应用程序URI方案的C#应用​​程序。运作方式如下:

  1. 用户单击网站上的“打印”。
  2. 网站将用户链接到“ CustomURL://打印/ {ID}
  3. Windows通过自定义uri方案启动应用程序。
  4. 应用程序与预先配置的服务器通信以确认打印请求,在我的情况下,获取实际的打印命令。
  5. 然后,应用程序使用C#RawPrinterHelper类将命令直接发送到打印机。

这种方法需要从用户进行初始下载,并在首次启动应用程序时从Windows进行单个安全提示。我还实现了一些Javascript魔术,以使其能够检测是否处理了打印作业。如果不是,它将要求他们下载该应用程序。

2020-05-10