iText中Table和PdfTable的区别

 我来答
匿名用户
推荐于2016-04-09
展开全部
1.iTextSharp.text.Table的Rowspan方法可以合并行,缺点是,每行的高度是根据内容自动调整的.

2.PdfPTable的MinimumHeight方法可以设置行的高度,但是不能合并行.
3.现在的问题是既要能合并行,又要能设置行的高度.
PdfPTable的PdfPCell有个方法disableBorderSide(1);
disableBorderSide();方法有一个参数,有四个值1,2,衡扰4,8 分别对应每行的上,下,左,右四个边框.
PdfPTable每行的四个边框默认是显示的.要想隐藏上边框,disableBorderSide();方法尺拦吵的参数设置为1就行了.
这样就PdfPTable就可以变相地实现合并行.唯一不足的是合并行里面的内容要动态实现就不好调整了.

例子1:(PdfPtable的用法)
String option2= "1,选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目";
Paragraph options2 = newParagraph(option2,new Font(bfChinese,
12));
options1.setAlignment(Element.ALIGN_LEFT);
doc.add(options2);
PdfPTable table1 = newPdfPTable(4);
table1.setHorizontalAlignment(Element.ALIGN_MIDDLE); int hws1[] = {15, 30, 15, 30,};
table1.setWidths(hws1);
table1.setTotalWidth(100);

image.scaleAbsolute(100, 100);
Phrase content = new Phrase("A 选陵侍择题选项测试,加图片的的。选择题选项测试,加图片的的。选择题选项测试,加图片的的。",font);
PdfPCell cellleft1= newPdfPCell(content);
cellleft1.setColspan(2);
cellleft1.setHorizontalAlignment(Element.ALIGN_LEFT); cellleft1.disableBorderSide(1);
cellleft1.disableBorderSide(2);
cellleft1.disableBorderSide(4);
cellleft1.disableBorderSide(8);
table1.addCell(cellleft1);
PdfPCell cellright1= newPdfPCell(image);
cellright1.setColspan(2);
cellright1.setHorizontalAlignment(Element.ALIGN_CENTER); cellright1.disableBorderSide(1);
cellright1.disableBorderSide(2);
cellright1.disableBorderSide(4);
cellright1.disableBorderSide(8);
table1.addCell(cellright1);

例子2:(Table的用法)
PdfPTable table = newPdfPTable(2);//两列
35 table.setWidthPercentage(100);
36 //传入的对象信息
37 count = list.size();
//避免因为最后一行数据由于不能满足总列数而导致itext自动将其去掉,38 而生成一些多余的数
39 intcolumn = 2;
40 intpersons = count;
41 intyushu = persons % 2;
42 inttmppersons = persons + (column - yushu);
43 String barCodeString = "";
44 String barCode = "";
45 //对象信息输入pdf文件
46 for(inti = 0; i<tmppersons; i++) {
47 if(i< persons) {
48 //构造个两列一行的表格
49 PdfPTablemytable = newPdfPTable(2);
50 //插入图片
51 Image image = Image.getInstance("image路径");
52 mytable.addCell(image);
53 mytable.setWidthPercentage(80);
54 String cntext = "测试";
55 mess = newParagraph(cntext, newcom.lowagie.text.Font(bfChinese,11)); 56 //第二列放文字信息
57 mytable.addCell(mess);
58 //在单元格中放置构造好的一个表格 59 table.addCell(mytable);
威孚半导体技术
2024-08-19 广告
威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层... 点击进入详情页
本回答由威孚半导体技术提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式