.net itextsharp PDF中创建表格

写在前面:笔者属于萌新,本文只是记录在开发中的经验,如有错漏,请大家不吝赐教。

1.字体设定:

string fontPath = Server.MapPath("Fonts/" + "SourceHanSerif-VF.ttf.ttc,0");
BaseFont baseFont =BaseFont.CreateFont(fontPath,BaseFont.IDENTITY_H,
 BaseFont.NOT_EMBEDDED);
Font titleFont = new Font(baseFont, 10);

笔者使用的是思源宋体,可以免费使用。虽然其他教程中也提到,可以使用Windows自带的字体,但是笔者去搜索了一下其中看中的一个字体,似乎不能免费商用。大家在使用字体时也要注意这个情况。

2.创建表格:

PdfPTable table = new PdfPTable(8);
table.TotalWidth = 500f;
table.LockedWidth = true;
float[] widths = new float[] { 1f,6f,1f,1f,1f,1f,1f,2f};
table.SetWidths(widths);

创建表格时,标明列数;规定好宽度后,可在SetWidths中设置各个列所占的宽度比例,注意个数应跟列数一致。此处1f指占1份,也就是(1+6+1+1+1+1+1+2)中的1份。

3.单元格的设定:

PdfPCell cell = new PdfPCell(new iTextSharp.text.Phrase("标题",titleFont));
//水平占据8列的空间
cell.Colspan = 8;
//水平居中对齐
cell.HorizontalAlignment = Element.ALIGN_CENTER;
//垂直居中对齐
cell.VerticalAlignment = Element.ALIGN_MIDDLE;
//将单元格加入至表格中
table.AddCell(cell);

在创建单元格时,将创建好的Font对象放进去,就可以使用中文了。但笔者使用的字体似乎有些软件解析不出来,但wps、Edge跟Chrome都没问题。

横向合并单元格可以使用Colspan属性,需要合并几列就写几。

Element.ALIGN_CENTER和Element.ALIGN_MIDDLE都是常量,分别为1和5,对应着水平方向和竖直方向的居中。

4.竖直方向的行合并:

行合并不能使用Rowspan。假设我们有一个两行两列的表格,要合并左侧列中的两个单元格,则实际上,创建一个两列的表格,左侧正常输入单元格内容,右侧单元格则插入一个两行一列的表格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值