大梦想家
5年开发工程师,2年实施经理,X年售前顾问,......
BlogJava
首页
新随笔
联系
聚合
管理
数据加载中……
EclipseRCP打印表格
做过RCP项目的朋友应该都遇到过打印的问题,在C/S构架中打印应该是最麻烦的事情。SWT提供的打印功能很简单,特别是在做表格打印的时候,需要大家使用GC自己绘出来,才能打印,对于初级的开发人员和人力不足的公司来说是非常麻烦的事情。
还好ceclipse.org的老大yipsilon zheng贡献出了一个SWT表格打印的项目,可以做到不同表格的直接打印,而且还有跨行跨列的实现,我改造了一下(把项目做了个转码utf-8==》GBK),然后打成JAR包放上来给大家使用。
1
package
com.glnpu.dmp.client.platform.core.internal.util;
2
3
import
org.ceclipse.reporting.IReport;
4
import
org.ceclipse.reporting.IReportPage;
5
import
org.ceclipse.reporting.Report;
6
import
org.ceclipse.reporting.ReportData;
7
import
org.ceclipse.reporting.ReportUtil;
8
import
org.eclipse.nebula.widgets.grid.Grid;
9
import
org.eclipse.swt.printing.PrintDialog;
10
import
org.eclipse.swt.printing.Printer;
11
import
org.eclipse.swt.widgets.Table;
12
import
org.eclipse.ui.PlatformUI;
13
14
/** */
/**
15
* 通用表格打印组件,目前提供两个方法分别用于打印表格(Gird,Table);
16
* 工作任务名:printContent
17
*
@author
lign
18
*
19
*/
20
public
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
客户虐我千百遍,我待客户如初恋!
posted on 2007-07-20 16:21
阿南
阅读(3083)
评论(7)
编辑
收藏
所属分类:
Eclipse-RCP
、
西安java用户群
评论
#
re: EclipseRCP打印表格 2007-07-24 10:04
阿源
请问有没有附带源码呢? 我想预览一下,调用report.preview();出错的。
回复
更多评论
#
re: EclipseRCP打印表格 2007-10-01 12:09
李世虎
我的信息表格
回复
更多评论
#
re: EclipseRCP打印表格 2008-01-23 21:34
winner
org.eclipse.nebula.widgets.grid.Grid;这个JAR哪儿下载呀,程序老报错。源码传上来看看呀
回复
更多评论
#
re: EclipseRCP打印表格 2008-05-28 09:32
求助
我想用utf-8的老大能给我个吗
luiguangshui@163.com
回复
更多评论
#
re: EclipseRCP打印表格 2008-07-07 17:50
huangdan
IReportPage page = ReportUtil.convert(grid, title);
convert(grid, title)这个方法出错了,怎么改?
怎么样使用这个类来进行打印呀?
谢谢!!!
回复
更多评论
#
re: EclipseRCP打印表格 2008-07-21 23:49
何敏··
谢谢大家把你们的资源共享。
hemin108@126.com
回复
更多评论
#
re: EclipseRCP打印表格
2010-10-11 16:36
zmh
博主你好,我在调用打印表格的方法时出现如下错误:Exception in thread "main" java.lang.IllegalStateException: Workbench has not been created yet.
at org.eclipse.ui.PlatformUI.getWorkbench(PlatformUI.java:92)
at com.ytkj.kq.print.PrintContent.printToPrinter(PrintContent.java:55)
at com.ytkj.kq.print.PrintContent.printTable(PrintContent.java:44)
at com.ytkj.kq.PersonnelData.PersonnelChange$6.widgetSelected(PersonnelChange.java:404)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at com.ytkj.kq.PersonnelData.PersonnelChange.open(PersonnelChange.java:139)
at com.ytkj.kq.Main$14.widgetSelected(Main.java:852)
at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
at com.ytkj.kq.Main.<init>(Main.java:278)
at com.ytkj.kq.Main.main(Main.java:243)
能帮忙解决一下吗,希望能将解决方法发到小弟的邮箱:lqmh18@163.com
在此先谢过了
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Wazaabi 2.0 让我看到了自定义界面设计器的希望
如何使用代码重启RCP程序?
How to show taskbar icon when use splash?
Eclipse3.3-3.4MX多国语言项目放出
Eclipse4.0放出部分Demo
惊叹吧!RAP!
打造仿淘宝注册的Text(二)
再次寻求从事过Java桌面的应用的朋友解惑~
寻求从事过Java桌面的应用的朋友解惑~
一个使用SWT Ribbon代替Eclipse-RCP上面Coolbar的例子~
公告
5年开发工程师,2年实施经理,X年售前顾问,......
<
2007年7月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
统计
随笔 - 130
文章 - 5
评论 - 427
引用 - 0
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(23)
给我留言
查看公开留言
查看私人留言
我参与的团队
西安java用户群(0/0)
西安JAVA俱乐部(0/0)
随笔分类
(188)
DB4O(1)
(rss)
Eclipse4
(rss)
Eclipse-RAP(4)
(rss)
Eclipse-RCP(50)
(rss)
Eclipse-SWT(11)
(rss)
Eclipse-WorkBench(1)
(rss)
EJB3(4)
(rss)
JavaScript(4)
(rss)
JDK5.0(2)
(rss)
Maven2(4)
(rss)
OSGI(1)
(rss)
Python成长之路
(rss)
个人原创(16)
(rss)
乱弹闲言(7)
(rss)
工作心得(16)
(rss)
工具网站(3)
(rss)
开源(8)
(rss)
沉思录(3)
(rss)
西安java用户群(45)
(rss)
读书笔记(8)
(rss)
随笔档案
(123)
2013年1月 (2)
2010年6月 (1)
2009年7月 (3)
2009年6月 (1)
2009年4月 (1)
2009年3月 (3)
2009年2月 (1)
2008年7月 (1)
2008年4月 (5)
2008年3月 (10)
2008年2月 (5)
2008年1月 (7)
2007年12月 (7)
2007年11月 (4)
2007年10月 (5)
2007年9月 (4)
2007年8月 (9)
2007年7月 (19)
2007年6月 (17)
2007年5月 (18)
文章分类
(3)
Cool文存档(3)
(rss)
文章档案
(7)
2008年3月 (1)
2007年12月 (4)
2007年7月 (1)
2007年5月 (1)
Friends
http://www.richclient2.eu
三告习习
Java Link
DZone
(rss)
TTS
My Link
我的网盘
最新随笔
1. Could not instantiate class XXX from tuple at AliasToBeanConstructorResultTransformer 的处理办法
2. 在企业内部部署Chrome的课前预习
3. 查询Oracle的BLOB类型
4. 谁不知道构架?
5. EJB3下无状态会话Bean发布为WebService
6. Wazaabi 2.0 让我看到了自定义界面设计器的希望
7. 不怕错,就怕不认错
8. Lock wait timeout exceeded; try restarting transaction
9. 如何使用代码重启RCP程序?
10. How to show taskbar icon when use splash?
搜索
积分与排名
积分 - 260025
排名 - 217
最新评论
1. re: 如何在ViewPart上添加ViewToolBar
请问toolbar中的按钮,怎么才能弄到选项卡那一行上
--suren
2. re: 西安java用户群成立~_~
hui_zh996@163.com
这是我的联系方式
QQ:2603651153
支持
--常一
3. re: 初识DB4O
存在本地,其实就是本地一份文件!文件名没有什么限制
--replica montblanc watches
4. re: SWT---nebula_cdatetime_0.9.0中文版[未登录]
得到
--你好
5. re: SWT中使用JFreeChart(无需SWT_AWT)
@寒武纪
我的JFreeChart怎么没有ChartComposite!! 求指点!!!
--cala
阅读排行榜
1. JAVA如何调用DOS命令(16248)
2. 为什么读取.properties文件时出现“java.lang.IllegalArgumentException: Malformed \uxxxx encoding”(12104)
3. 利用JS获取IE客户端IP及MAC的实现(8373)
4. JWS(Java Web Start)高级应用(5654)
5. Eclipse3.3的新特性(5292)
评论排行榜
1. 需要加入XAUG的朋友请留言给我!(27)
2. 公司Eclipse-RCP培训PPT教材(25)
3. 西安java用户群成立~_~(18)
4. Eclipse3.3的新特性(18)
5. JAVA如何调用DOS命令(14)