首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

【转】iText 作图表格的诸多缺陷

2012-11-05 
【转】iText 绘制表格的诸多缺陷http://www.iteye.com/topic/178465?? ?近日,工程中需要在JSP页面导出Word

【转】iText 绘制表格的诸多缺陷

http://www.iteye.com/topic/178465

?? ?近日,工程中需要在JSP页面导出Word 和 PDF,导出的内容有一部分需要绘制成表格.?

?

?? ?查了很多文档,发现PdfPTable和Table可以用来绘制表格.?

?? 问题出现了?

?? ?我想自定义表格的总宽度 以及 每一列的的宽度,这个功能几乎成了不可能的事情?

?? ?关于这点,我先说说Table?

?? ?假设我现在定义一个Table对象如下?

?? ?Table table = new Table(3);?

?

?? ?1. table.setWidth(100f); ?这句是说不管你表格多少列,每列的宽度都是100f;?

?? ?2. float[] widths = {400f, 300f, 100f};?

?? ? ? tableInfo.setWidths(widths);?

?? ? ? 上面表面上定义表格的三列宽度分别为400f,300f,100f,但是...你自己打印出来看效果吧,总宽度绝对?

?? ? ? ?没有800f,它的总宽度是固定了的,找了半天都找不到如何为我的表格设计总宽度.我惊讶的是,网上搜出?

?? ? ? ?来的一些教你如何绘制表格的贴子或方法,居然对此只字不提!难道itext包给你多少宽,你就用多少宽??

?? ? ? 再者,有些时候,我们不想让表格产生边框,于是大家都会调用table.setBorderWidth(0),没用的,依然?

?? ? ?没有边框,最后没办法了,我让我所有Cell对象都调用cell.setBorderWidth(0),这样才解决去掉边框的问题.?

?? ? ? 再次让我惊讶的是,网上所有贴子,所谓的心得,完全没有讲这个事,全是setBorderWidth(1),我真的不信?

?? ? ? ?你们没碰过这样的问题.?

?

?? ?再来说下PdfPTable,这个比Table要强一些,Table里解决不了的问题PdfPTable有时候可以解决?

?? ? 比如设置表格总宽度和具体每一列的宽度.?

?? ?float[] widths = {145f, 100f, 145f,100f};?

PdfPTable table = new PdfPTable(widths);?

table.setTotalWidth(490);?

table.setLockedWidth(true);?

?? ?这四句定义了表格总宽度和具体每列的宽度,但仍然解决不了边框问题,你如果不想要边框,仍然只有在所有?

?? ? PdfCell后调用setBorderWidth(0)?

?

?? ?写了这么多,我还是不能理解,网上那些所谓的经验心得,长篇累牍几千字,全是如下类似代码,画完一个不管能不能?

?? ? 用就没事了.?

?? ? Table table = new Table(3);?

?? ?table.setBorderWidth(1);?

?? ?Cell cell = new Cell((new Paragraph("test",FontChinese)));?

1 楼 speed_guo 2010-05-19   学有体会了,“我还是不能理解,网上那些所谓的经验心得,长篇累牍几千字,全是如下类似代码,画完一个不管能不能用就没事了. ”

没用过,没有体会的就不要乱copy,真的有用再copy,情的可原。 2 楼 leyen 2011-10-31   我怎么感觉你是在抱怨呢,网上有很多代码是COPY的,有些问题是没发现,你既然发现了你就自己去找答案呗,什么叫“我还是不能理解,网上那些所谓的经验心得,长篇累牍几千字,全是如下类似代码,画完一个不管能不能用就没事了. ” 不能理解的事情太多了。

热点排行