【问题标题】:Catching window.print() from SWT Browser从 SWT 浏览器捕获 window.print()
【发布时间】:2010-09-18 14:55:46
【问题描述】:

我正在探索具有以下功能的浏览器解决方案/API:

  • 必须支持当今的默认网络技术
  • 必须支持客户端 XSLT
  • 必须支持在其加载的页面上执行任意 Javascript
  • 必须能够从针对浏览器或操作系统的网页捕获事件(我对 window.print() 特别感兴趣)

QtWebkit 看起来不错,但它仍然不支持 XSLT,所以我不得不寻找替代方案。 SWT 浏览器是底层系统的本机浏览器组件的包装器,在我感兴趣的 linux 中,这意味着支持我感兴趣的属性的 Firefox 引擎,除了我还没有找到如何捕获窗口.print() 并提供我自己的实现,而不是打开打印对话框的默认实现。

有什么建议吗?

【问题讨论】:

    标签: java api browser swt


    【解决方案1】:

    如果您知道如何在 javascript 中捕获事件并阻止显示本机对话框,则可以使用snippet 中显示的方法在您的 SWT 代码中捕获事件。

    不过,另一个选项可能会更好:使用 mozilla 的类来注册您自己的打印处理程序。在此snippet 中为下载处理程序显示了类似的内容,但我尚未测试是否也可以用于打印处理程序。

    第二个选项的问题在 sn-p 的 javadoc 中有说明:

    重要提示:要使此 sn-p 正常工作,必须满足在独立应用程序中使用 JavaXPCOM 的所有要求(请参阅http://www.eclipse.org/swt/faq.php#howusejavaxpcom)。

    【讨论】:

      【解决方案2】:

      FWIW 还有另一种方法可以使用基于 Mozilla 的 SWT 浏览器在 http://www.eclipse.org/forums/index.php?t=msg&th=166869&start=0& 上执行此操作。

      【讨论】:

      • 请不要在 Stack Overflow 上发布仅链接的答案。有参考资料很好,但答案应该能够独立存在。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多