`
soleegn
  • 浏览: 147441 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论
阅读更多
    做过RCP项目的朋友应该都遇到过打印的问题,在C/S构架中打印应该是最麻烦的事情。SWT提供的打印功能很简单,特别是在做表格打印的时候,需要大家使用GC自己绘出来,才能打印,对于初级的开发人员和人力不足的公司来说是非常麻烦的事情。
   还好ceclipse.org的老大yipsilon zheng贡献出了一个SWT表格打印的项目,可以做到不同表格的直接打印,而且还有跨行跨列的实现,我改造了一下(把项目做了个转码utf-8==》GBK),然后打成JAR包放上来给大家使用。
 1package com.glnpu.dmp.client.platform.core.internal.util;
 2
 3import org.ceclipse.reporting.IReport;
 4import org.ceclipse.reporting.IReportPage;
 5import org.ceclipse.reporting.Report;
 6import org.ceclipse.reporting.ReportData;
 7import org.ceclipse.reporting.ReportUtil;
 8import org.eclipse.nebula.widgets.grid.Grid;
 9import org.eclipse.swt.printing.PrintDialog;
10import org.eclipse.swt.printing.Printer;
11import org.eclipse.swt.widgets.Table;
12import org.eclipse.ui.PlatformUI;
13
14/** *//**
15 * 通用表格打印组件,目前提供两个方法分别用于打印表格(Gird,Table);
16 * 工作任务名:printContent
17 * @author lign
18 *
19 */

20public class PrintContent {
21
22    /** *//**
23     * 对Gird进行打印操作
24     * @param grid SWT 的nebula项目的Grid
25     * @param title 表头文字描述
26     */

27    public static void printGird(Grid grid, String title) {
28        IReportPage page = ReportUtil.convert(grid, title);
29        Report report = new Report();
30        report.addPage(page);
31        printToPrinter(report);
32        
33    }

34    
35    /** *//**
36     * 对Table进行打印操作
37     * @param table SWT 的Table
38     * @param title 表头文字描述
39     */

40    public static void printTable(Table table, String title) {
41        IReportPage page = ReportUtil.convert(table, title);
42        Report report = new Report();
43        report.addPage(page);
44        printToPrinter(report);
45        
46    }

47    
48    /** *//**
49     * 处理打印以及调用Printer
50     * @param report
51     */

52    private static void printToPrinter(IReport report) {
53         ReportData reportData = report.getReportData();
54         reportData.setJobName("printContent");
55         reportData.setPrinter(new Printer(new PrintDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()).open()));
56         report.print();
57    }

58}

59
我封装了两个方法,一个方法处理SWT提供的Table的打印,另一个处理SWT-星云(Nebula)-Gird的打印,基本上满足我的需要了。
Jar下载:
http://www.blogjava.net/Files/leeguannan/org.ceclipse.printer_1.0.rar
分享到:
评论

相关推荐

    Eclipse RCP 打印表格.zip

    在“Eclipse RCP 打印表格.zip”这个资源中,我们关注的是如何在Eclipse RCP应用中实现表格的打印功能。 在Eclipse RCP中,表格组件通常使用 SWT (Standard Widget Toolkit) 或 JFace 的 TableViewer 类来创建。SWT...

    Eclipse+RCP+打印表格

    ### Eclipse+RCP+打印表格 #### 背景与挑战 在开发基于Eclipse RCP的应用程序时,经常会遇到需要实现打印功能的需求,尤其是在处理表格数据时。由于Eclipse RCP采用的是SWT(Standard Widget Toolkit)作为其图形...

    SMS.rar_eclipse swt_java 学生成绩管理系统_rcp_学生 eclipse_成绩管理 系统 eclipse

    《基于Eclipse RCP与SWT的学生成绩管理系统详解》 在当今信息化时代,教育领域的信息化管理变得越来越重要,其中学生成绩管理系统的开发是关键一环。本篇文章将详细探讨一个使用Eclipse Rich Client Platform (RCP)...

    SWTBot收集

    SWT包括一系列的基础组件,如按钮、文本框、列表和表格等,同时也支持拖放操作、打印和对话框等功能。 **Eclipse RCP(Rich Client Platform)** Eclipse RCP是一种用于构建桌面应用的开放框架,它基于SWT和JFace。...

    定制 SWT RCP 界面--如何编写一个漂亮的 SWT

    Eclipse RCP(Rich Client Platform)是一种基于SWT的框架,用于构建复杂而强大的桌面应用程序。RCP不仅提供了一套丰富的UI控件,还包含了插件化架构、工作台管理等功能,使开发者能够快速构建出结构清晰、易于维护...

    非常好的birt-RCP实例

    RCP(Rich Client Platform)是Eclipse框架的一部分,用于构建复杂的桌面应用程序。将BIRT集成到RCP中,可以创建自定义的报告查看和编辑环境,为企业应用提供报表服务。 在“非常好的birt-RCP实例”中,我们可以...

    SWT相关学习资料(多个pdf文档)

    `快速了解ECLIPSE(SWT).pdf` 可能会详细解释SWT在Eclipse开发中的应用,包括Eclipse插件开发的基本概念,以及如何利用SWT和JFace创建Eclipse插件,为开发者提供Eclipse RCP(Rich Client Platform)开发的入门指导...

    eclipse官方网站上的SWT例子(用306个)

    RCP (Rich Client Platform) 是基于Eclipse的框架,用于开发桌面应用程序。这个资源集合是eclipse官方网站提供的SWT示例,包含了306个不同的例子,对于学习和理解SWT以及RCP编程非常有帮助。 在这些例子中,你可以...

    Eclipse_Swt_Jface_核心应用_部分19

    13.1.1 打印类(Printer)和打印数据类(PrinterData) 262 13.1.2 打印程序示例概述 265 13.1.3 打印程序示例:主窗口程序 265 13.1.4 打印程序示例:打开文件程序 268 13.1.5 打印程序示例:设置字体和...

    swt入门学习资料

    同时,SWT 可以与 JFace 和 Eclipse RCP 结合使用,构建更复杂的图形用户界面和企业级应用。 总的来说,SWT 是 Java GUI 开发的一个强大选择,尤其适合那些需要原生外观和高性能的应用。对于初学者来说,理解 SWT ...

    SWT API 帮助文档 及源码

    9. **可扩展性**:SWT 是Eclipse RCP(Rich Client Platform)的基础,可以与其他Eclipse插件无缝集成,提供强大的可扩展性和灵活性。 **源码分析** SWT 的源码是用Java编写的,通过JNI(Java Native Interface)...

    swt学SWT者必备的帮助文档

    而Eclipse RCP(Rich Client Platform)则基于SWT和JFace,为构建复杂的企业级应用提供了全面的框架。 "www.pudn.com.txt"可能是下载来源或版权信息的记录,它可能包含文档的获取途径或作者声明等信息,对学习SWT...

    iReport 用户手册

    iReport是JasperSoft公司推出的一款开源报表设计工具,它基于Eclipse RCP框架,提供了一个图形化的用户界面,用于设计和编辑JasperReports报表模板。iReport支持多种数据源,包括数据库连接、XML文件、CSV文件等,...

    swt.zip_SWT

    通过分析示例代码,你可以了解到如何在SWT中创建窗口、布局控件、处理事件、以及与其他Java库(如JFace和Eclipse RCP)的集成。这对于想要在Java环境中构建桌面应用的开发者来说,是非常有价值的资源。

    ireportTemp

    1. **iReport**: iReport是JasperSoft公司开发的一款基于Eclipse RCP的报表设计工具,允许用户通过拖放的方式创建复杂的报表布局,支持多种数据源,如数据库、CSV、XML等。它提供了丰富的图表、样式和脚本功能,使得...

    SwtJfaceInAction

    14. **超越SWT和JFace**:这部分可能涉及了如何将SWT和JFace与其他技术(如RCP、EMF、GMF等)集成,以构建更复杂的Eclipse应用程序。 通过本书,读者可以掌握基于Eclipse 3.0的SWT和JFace开发技术,从而能够高效地...

    SWT_JFace_in_action.pdf.zip_模式识别(视觉/语音等)_Java_

    6. 模块化和插件体系结构:了解Eclipse RCP( Rich Client Platform)的基础。 7. 高级主题:如拖放支持、打印、国际化和本地化。 对于那些希望在Java GUI开发中脱颖而出的开发者来说,掌握SWT和JFace的使用,并...

    java程序设计之swt教程

    JFace的`ViewPart`和`EditorPart`类可以帮助构建Eclipse插件和RCP(Rich Client Platform)应用程序。 学习SWT教程时,可以按照以下步骤进行: 1. 理解SWT的基本结构和组件,包括控件、容器和布局。 2. 学习如何...

    Java程序设计之swt教程.rar

    11. **进阶主题**:可能深入到SWT的高级特性,如拖放操作(Drag and Drop)、打印支持、以及与其他Java框架如RCP(Rich Client Platform)的集成。 通过这本教程的学习,开发者可以掌握SWT的基本用法,提高在Java平台...

Global site tag (gtag.js) - Google Analytics