iText itextsharp 生成 pdf表格表单 教程
用C#制作PDF表单
前 言PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少.
本文主要说下itext生成pdf复杂表格。
效果如下图:
目 录
第四步:定义基础表格cell,设置边距,解决表格内容垂直居中的问题(因为直接设置垂直居中是没有效的—水平居中有效)... 5
第5步:定义基本表格。定义图片cell。(生成表格时,从上而下生成。图片不能最后插入) 5
第一部分iText pdf 表格生成教程
第一步:引用 itextsharp.dll
usingiTextSharp.text;
usingSystem.IO;
usingiTextSharp.text.pdf;
第二步:创建pdf 文档的实例//创建一个iTextSharp.text.Document 对象的实例:
Documentdocument = newDocument();
//为该Document 创建一个Writer 实例:
PdfWriter.GetInstance(document, newFileStream(@"C:\Users\hechao\Desktop\报名表格.pdf", FileMode.Create));
//打开当前Document
document.Open();
第三步:定义字体,并打印标题.( 处理中文字休)/// SIMSUN.TTC:宋体和新宋体
//SIMKAI.TTF:楷体
//SIMHEI.TTF:黑体
//SIMFANG.TTF:仿宋体
BaseFontbftitle = BaseFont.CreateFont(@"C:\Windows\Fonts\SIMHEI.TTF",
BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Fontfonttitle = newFont(bftitle, 20);
BaseFontbf1 = BaseFont.CreateFont(@"C:\Windows\Fonts\SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Fontfont1 = newFont(bf1, 12);
Fontfonttitle10 = newFont(bf1, 12);
ParagraphTitle = newParagraph("XXXX比赛", fonttitle);
Title.SetAlignment("center");
document.Add(Title);
第三步:输入一个空行(换行)。以分开标题与表格Paragraphnullp = newParagraph(" ", fonttitle);
nullp.Leading = 10;
document.Add(nullp);
第四步:定义基础表格cell ,设置边距,解决表格内容垂直居中的问题(因为直接设置垂直居中是没有效的—水平居中有效)
iTextSharp.text.pdf.PdfPCellcellmode = newiTextSharp.text.pdf.PdfPCell();
cellmode.Padding = 4F; (cellmode.PaddingBottom = 6F;//这里可以分别设置)
第5 步:定义基本表格。定义图片cell。(生成表格时,从上而下生成。图片不能最后插入)
iTextSharp.text.pdf.PdfPCellcell_pic10 = newiTextSharp.text.pdf.PdfPCell(); // 创建单元格
iTextSharp.text.pdf.PdfPCellcell_pic20 = newiTextSharp.text.pdf.PdfPCell(); // 创建单元格
iTextSharp.text.pdf.PdfPTabletable = newiTextSharp.text.pdf.PdfPTable(8); // 表格有7列
table.SetWidths(newfloat[] {90,90,90,90,120,90,90,130 });//宽
第6 步:多行多列的表格cell = newiTextSharp.text.pdf.PdfPCell();
cell.Colspan = 1;
cell.Rowspan = 4;
第7 步:插入图片
cell = newiTextSharp.text.pdf.PdfPCell();
cell.Colspan = 1;
cell.Rowspan = 4;
System.Drawing.Imageimg_1 = System.Drawing.Image.FromFile(@"C:\Users\hechao\Desktop\1.jpg");
iTextSharp.text.Imageimg0 = iTextSharp.text.Image.GetInstance(img_1, iTextSharp.text.BaseColor.WHITE);
if(img_1.Width > cell.Width || img_1.Height > cell.Height)
{
img0.ScaleToFit(cell.Width, cell.Height);
}
cell.FixedHeight = cell.MinimumHeight;
cell.Image = img0;
table.AddCell(cell);
img_1.Dispose();
第7 步:插入一个空行(内容为空的表格)
cell = newiTextSharp.text.pdf.PdfPCell();
cell.MinimumHeight = 60;
cell.Colspan = 2;
table.AddCell(cell);