使用 Eclipse RCP 程序进行打印

2024-03-05

我正在寻找一种好的、标准的方法来在我的 RCP 程序中生成“输出”并打印它。这应该像在 Windows、Mac OS 和 Linux 上使用标准打印对话框一样工作。

我知道 Birt 项目,但我找不到任何关于如何在 RCP 程序中实现它、如何调用标准打印对话框以及如何将 Birt 生成的报告传递到打印机的提示。

为所有提示感到高兴。


我相信伯特项目中用到了IText http://www.eclipse.org/birt/build/install.html. (now ITextPDF http://itextpdf.com/)

另一个解决方案是将 Apache Fop 集成到您的 RCP 项目中 http://dev.eclipse.org/newslists/news.eclipse.platform.rcp/msg11948.html. (see 阿帕奇FOP http://xmlgraphics.apache.org/fop/).
为了做到这一点,建议 http://mail-archives.apache.org/mod_mbox//xmlgraphics-fop-dev/200811.mbox/%3C20081113200424.5F7A.60BA733C@jeremias-maerki.ch%3E不实现渲染器 但实施一个IFDocumentHandler/IFPainter对,作为新中间格式的一部分(如果它已集成到 Fop 中,我不确定):

  • 创建一个新的 Java 项目,决定 包名并准备两个类实现IFDocumentHandler(文档级)和IFPainter(页面级别)。
    这些接口可以在包中找到org.apache.fop.render.intermediate.
  • 要注册新的实现,您需要定义一个 MIME 类型(另请参阅MimeConstants.java)并创建一个扩展类AbstractIFDocumentHandlerMaker它充当工厂类。
  • 然后创建一个名为的文本文件META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler您可以在其中编写该“maker”类的完全限定类名。
  • 我可能需要补充的一件事(目前缺少)是setIFDocumentHandlerOverride()中的方法FOUserAgent,这样你就可以在一个中设置输出SWT窗户。普通 API 针对生成文件进行了优化。

The 错误 23618 https://bugs.eclipse.org/bugs/show_bug.cgi?id=23618(七年后修复!)包含一个制作打印机作业的小示例,以及SWT FAQ http://www.eclipse.org/swt/faq.php#installedprinters打印机上有一些有趣的元素(相对于显示、DPI 和修剪)。这SWT 片段 http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/PrintDialogExample.htm也很清楚。
但是,这些示例都不是通过命令调用的,即使您可以轻松定义一个 https://stackoverflow.com/questions/552435/eclipse-rcp-actions-vs-commands/552450#552450)一旦你设置了一个处理程序(即你编写的任何类,能够打开打印对话框)。

注意:请注意,当您调用“打印”对话框时,只有最新版本的 Eclipse Helios 3.6(即2010年1月下旬3.6M5 http://download.eclipse.org/eclipse/downloads/drops/S-3.6M5-201001291300/eclipse-news-M5.html)能够记住用户为所有文本编辑器选择的选项,直到工作台关闭(即:

  • 选定的打印机
  • 打印到文件
  • 打印机首选项:这些是打印机特定的选项,例如纸张尺寸、页面顺序方向等。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Eclipse RCP 程序进行打印 的相关文章

随机推荐