我正在寻找一种好的、标准的方法来在我的 RCP 程序中生成“输出”并打印它。这应该可以在带有标准打印对话框的 Windows、Mac OS 和 Linux 上工作。
我知道 Birt 项目,但我找不到任何关于如何在 RCP 程序中实现它以及如何调用标准打印对话框以及如何将 Birt 生成的报告传递给打印机的提示。
对所有提示感到高兴。
我正在寻找一种好的、标准的方法来在我的 RCP 程序中生成“输出”并打印它。这应该可以在带有标准打印对话框的 Windows、Mac OS 和 Linux 上工作。
我知道 Birt 项目,但我找不到任何关于如何在 RCP 程序中实现它以及如何调用标准打印对话框以及如何将 Birt 生成的报告传递给打印机的提示。
对所有提示感到高兴。
我相信 Birt项目曾经使用过 IText。(现在ITextPDF)
另一个解决方案是将 Apache Fop 集成到您的 RCP 项目中。(参见Apache FOP)。
为此,建议不要实现渲染器,而是实现IFDocumentHandler
/IFPainter
对,作为新中间格式的一部分(如果它已集成到 Fop,我不确定):
IFDocumentHandler
(文档级)和IFPainter
(页面级)的类。org.apache.fop.render.intermediate
。 MimeConstants.java
)并创建一个扩展类AbstractIFDocumentHandlerMaker
作为工厂类。META-INF/services/org.apache.fop.render.intermediate.IFDocumentHandler
,在其中写入该“制造商”类的完全限定类名。 setIFDocumentHandlerOverride()
方法,因此您可以在窗口FOUserAgent
中设置输出。SWT
普通 API 针对生成文件进行了优化。错误 23618(七年后修复!)包含一个制作打印机作业的小例子,SWT FAQ有一些关于打印机的有趣元素(与显示、DPI 和修剪)。这个SWT 片段也很清楚。
但是,这些示例都不是通过命令调用的,即使您可以轻松定义一个)一旦您设置了一个处理程序(即您编写的任何类,能够打开打印对话框)。
注意:请注意,当您调用打印对话框时,只有最新版本的 Eclipse Helios 3.6(即2010 年 1 月下旬的 3.6M5)能够记住用户为所有文本编辑器选择的选项,直到工作台关机(即:
您可以考虑使用 SWT 回形针。这使得从我的 RCP 应用程序进行打印变得非常容易。