iText中Table和PdfTable的区别75

 我来答
地瓜说机
2017-11-03 · TA获得超过2.9万个赞
知道大有可为答主
回答量:2.3万
采纳率:91%
帮助的人:1.2亿
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式