`
longgangbai
  • 浏览: 7331034 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

网上流传的一个RCP Table Grid打印实现原理和局限性

阅读更多

package com.easyway.tbs.commons.ext.views.printer;
import org.ceclipse.reporting.IReport;
import org.ceclipse.reporting.IReportPage;
import org.ceclipse.reporting.Report;
import org.ceclipse.reporting.ReportData;
import org.ceclipse.reporting.ReportUtil;
import org.eclipse.nebula.widgets.grid.Grid;
import org.eclipse.swt.printing.PrintDialog;
import org.eclipse.swt.printing.Printer;
import org.eclipse.swt.widgets.Table;
import org.eclipse.ui.PlatformUI;
/**
 * 采用网上流传的ceclipse.org的组件
 * 通用的表格打印组件,目前提供两个方法分别用于打印表格(Grid,Table)
 * 我封装了两个方法,一个方法处理SWT提供的Table的打印,另一个处理SWT-星云(Nebula)-Gird的打印,
 * 基本上满足我的需要了。贡献出了一个SWT表格打印的项目,可以做到不同表格的直接打印,而且还有跨行跨列的实现.
 * Jar下载:
 * http://www.blogjava.net/Files/leeguannan/org.ceclipse.printer_1.0.rar
 *
 * @author longgangbai
 *
 */
public class PrintTools {
    /**
     * 对SWT Table进行打印的操纵
     * @param table SWT Table 的对象 
     * @param title 表头文字描述
     */
 public static void printTable(Table table, String title) {
  IReportPage page = ReportUtil.convert(table, title);
  Report report = new Report();
  report.addPage(page);
  printToPrinter(report);
 }
  /**
     * 对SWT Gird进行打印的操纵
     * @param gird SWT Gird 的对象 
     * @param title 表头文字描述
     */
 public static void printGird(Grid grid, String title) {
  IReportPage page = ReportUtil.convert(grid, title);
  Report report = new Report();
  report.addPage(page);
  printToPrinter(report);
  printToPrinter(report);
 }
    /**
     * 处理打印以及调用Printer
     *@param report
     */
 private static void printToPrinter(IReport report) {
  ReportData reportData = report.getReportData();
  reportData.setJobName("printContent");
  reportData.setPrinter(new Printer(new PrintDialog(PlatformUI
    .getWorkbench().getActiveWorkbenchWindow().getShell()).open()));
  report.print();
 }
}

 

局限性:这个功能在打印的table或者Grid使用滚动条,但滚动条没有出现时打印正常。如果数据过多在表格中不能完全显示那么就不能满足了,最终采用报表工具实现打印报表功能。

分享到:
评论

相关推荐

    eclipse rcp check table

    Eclipse RCP(Rich Client Platform)是Eclipse框架下的一个应用程序开发平台,它提供了一种构建桌面应用的方式,尤其适合开发复杂的、具有丰富用户界面的软件。"Check Table"在这里通常指的是带有复选框的表格视图...

    Eclipse+RCP+打印表格

    假设你已经拥有一个包含表格数据的`Grid`或`Table`控件,只需要简单地调用`PrintContent.printGird(grid, "报表名称")`或`PrintContent.printTable(table, "报表名称")`即可完成打印。 #### 总结 通过上述介绍可以...

    我的第一个RCP程序

    通常,这样的入门教程会涵盖如何设置开发环境,创建一个新的RCP项目,理解RCP的基本架构,以及如何编写和运行一个简单的RCP应用。 【标签】"源码"和"工具"表明了这篇内容可能包含了实际的代码示例以及可能使用的...

    RCP与GEF课件,介绍RCP和GEF各组成部分和工作原理

    **RCP(Rich Client Platform)** 是Eclipse项目的一个核心组成部分,它提供了一个框架,用于构建功能丰富的桌面应用程序。RCP允许开发者利用Java语言和Eclipse插件体系结构来创建可扩展、模块化的应用程序,这些...

    rcp程序设计以及原理

    以前做swt项目的资料,希望多刚接触rcp的朋友有所帮助

    基于Eclipse RCP Email客户端的实现

    《基于Eclipse RCP Email客户端的实现》这篇本科毕业设计论文详细探讨了如何利用Java语言,结合Eclipse插件开发技术、RCP(Rich Client Platform)、EMF(Eclipse Modeling Framework)以及Java Mail工具包来构建一个...

    基于适配器模式的RCP应用属性视图实现

    通过以上步骤,你可以在Eclipse RCP应用中成功实现一个基于适配器模式的自定义属性视图。这不仅可以提高代码的复用性,还能使你的应用程序更加灵活,适应不断变化的需求。在实际开发中,你可能还需要处理如错误处理...

    sql-and-rcp-table.zip_Table_rcp

    通过上述步骤,我们可以创建一个功能完善的RCP应用,它能够实时显示和操作数据库中的数据。在实际开发中,还需要考虑其他因素,如用户界面设计、安全性、并发控制等,以提供更好的用户体验和数据保护。记住,每个...

    一个RCP的简单例子

    每个功能或组件都可以作为一个独立的插件实现,这样可以提高代码的重用性和可扩展性。 3. **模型-视图-控制器(MVC)**:在CRM系统中,数据模型通常包含客户信息、订单、联系历史等。视图负责展示这些数据,而控制...

    一个简单的RCP入门教程

    **RCP(Rich Client Platform)**是Eclipse框架下的一个重要组成部分,它提供了一种构建桌面应用程序的平台。RCP允许开发者利用Eclipse的强大功能来创建功能丰富的、自定义的、独立的应用程序,而不局限于Eclipse...

    RCP的VIEWER和EDITOR

    同时,Eclipse RCP提供了一套强大的事件机制,使得VIEWER和EDITOR之间的通信变得简单,例如,当用户在VIEWER中选择了一个项时,可以触发一个事件,使得相关的EDITOR更新其内容以反映所选项的详细信息。 总的来说,...

    Eclipse RCP 打印表格.zip

    资源中的“Eclipse RCP 打印表格.doc”可能是详细的文档说明,涵盖了以上提到的概念和步骤,而“org.ceclipse.printer_1.0.rar”可能是一个插件或者库,提供了现成的表格打印解决方案,简化了开发过程。 通过学习和...

    RCP,RCP开发

    1. **插件化架构**:RCP的核心是插件(Plugin)系统,每个功能模块都可以作为一个独立的插件存在,便于模块化开发和维护。 2. **可扩展性**:通过添加或移除插件,可以轻松地增加或减少应用功能,满足不同用户需求。...

    Rcp一个简单的入门教程

    **RCP(Rich Client Platform)** 是Eclipse项目的一个核心组成部分,它提供了一个框架,用于构建功能丰富的桌面应用程序。RCP允许开发者利用Eclipse的强大功能,如插件系统、工作台管理、视图和编辑器,来快速开发...

    基于eclipse RCP实现的邮件管理客户端rcpmail

    rcpmail是基于Eclipse RCP构建的一个邮件管理客户端,它展示了如何利用RCP框架开发出具有用户友好的界面和高效功能的应用程序。 首先,我们来理解Eclipse RCP的核心概念。RCP是Eclipse IDE的基础,它提供了构建可...

    一个简单的RCP开发例子

    **RCP(Rich Client Platform)**是Eclipse框架下的一个重要组成部分,它提供了一种构建桌面应用程序的模型。RCP允许开发者利用Eclipse的强大功能来创建功能丰富的、可扩展的、跨平台的应用程序。本示例将带你入门...

    RCP中adapter实现属性视图

    在Eclipse RCP(Rich Client Platform)开发中,适配器(Adapter)机制是一个核心概念,它使得组件之间能够解耦合,实现灵活的交互。本文将深入探讨如何在RCP应用中通过适配器实现属性视图(Property View),以展示...

    rcp 学习资料下载,一个简单的rcp例子

    这个"rcp 学习资料下载,一个简单的rcp例子"是一个针对初学者的学习资源,旨在帮助他们快速理解和掌握RCP的开发技术。 在Eclipse RCP中,开发者可以利用工作台(Workbench)、视图(View)、编辑器(Editor)、透视...

    一个基于Nacos、Netty、Protobuf 实现的简单易懂的RCP框架.zip

    标题中的“一个基于Nacos、Netty、Protobuf 实现的简单易懂的RCP框架”指的是一个使用了阿里巴巴的Nacos服务发现平台、高性能的网络库Netty以及高效的序列化协议Protobuf来构建的远程过程调用(RPC)框架。...

    一个简单的Eclipse RCP 源码示例

    Eclipse Rich Client Platform (RCP) 是一个强大的框架,用于构建桌面应用程序,它基于Java,提供了丰富的用户界面和模块化架构。这个简单的Eclipse RCP源码示例旨在帮助初学者快速理解RCP应用的基本结构和工作原理...

Global site tag (gtag.js) - Google Analytics