asp.net gridview用itextsharp生成PDDF,表格和表名、备注的间距怎么设置,表名、备注怎么每页都显示!
附代码: //第一步,创建一个iTextSharp.text.Document 对象的实例:
Document document = new Document(PageSize.A4.Rotate());//纸张大小设置 //第二步,为该Document 创建一个Writer 实例:
PdfWriter writer = PdfWriter.GetInstance(document, new System.IO.FileStream(Server.MapPath("../PDFcd/" + txtheader.Text.Trim() + "~" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf"), FileMode.Create));
//设置文档的属性
document.AddAuthor("XXX");
document.AddCreator("XXX,XXXX资产管理系统!");
document.AddKeywords("PDF,存档," + txtheader.Text.Trim());
document.AddSubject(txtheader.Text.Trim() + "PDF文档导出存档");
document.AddTitle(txtheader.Text.Trim()); //创建字体,必须的,不使用中文字体,就无法处理中文
BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//生成水印
writer.PageEvent = new PdfEventHanler("XX大学房屋信息存档", bfChinese);
//创建PDF文档中的字体
//BaseFont baseFont = BaseFont.CreateFont(
// FontPath,
// BaseFont.IDENTITY_H,
// BaseFont.NOT_EMBEDDED); ////根据字体路径和字体大小属性创建字体
//Font font = new Font(baseFont, FontSize);
//第三步,打开当前Document
document.Open(); //第四步,为当前Document 添加内容:做了三项1:段落 2:列表 3:表格
iTextSharp.text.Font fontChinese = new iTextSharp.text.Font(bfChinese, 10);
iTextSharp.text.Font fontbz = new iTextSharp.text.Font(bfChinese, 15);
iTextSharp.text.Font font = new iTextSharp.text.Font(bfChinese,20,iTextSharp.text.Font.BOLD,new iTextSharp.text.BaseColor(0,0,0));
//添加表名 Paragraph head = new Paragraph(this.txtheader.Text, font);
head.Alignment = iTextSharp.text.Rectangle.ALIGN_CENTER;
document.Add(head);
////添加表备注
Paragraph beizu = new Paragraph("制表单位:;" + this.ddlunit.Text + " 制表人: ;" + this.txtmademan.Text + " 制表时间:" + DateTime.Now.ToShortDateString(), fontbz);
beizu.Alignment = iTextSharp.text.Rectangle.ALIGN_CENTER;
document.Add(beizu); // 添加表头
PdfPTable table = new PdfPTable(gvwChangeRoom.Columns.Count); iTextSharp.text.pdf.PdfPCell cell = new PdfPCell(table);
cell.PaddingBottom = 0;
cell.PaddingTop = 10; for (int j = 0; j < gvwChangeRoom.Columns.Count; j++)
{
table.AddCell(new Phrase(gvwChangeRoom.HeaderRow.Cells[j].Text, fontbz));
}
// 告诉程序这行是表头,这样页数大于1时程序会自动为你加上表头。
table.HeaderRows= 1;
// 添加数据
string Str = "";
string[] StrSplit ;
//遍历原gridview的数据行
for (int ro = 0; ro < gvwChangeRoom.PageCount; ro++)
{
for (int i = 0; i < gvwChangeRoom.Rows.Count; i++)
{
for (int j = 0; j < gvwChangeRoom.Columns.Count; j++)
{
PdfPCell cell1 = new PdfPCell();
//table.AddCell(new Phrase(gvwChangeRoom.Rows[i].Cells[j].Text, fontChinese));
Str = gvwChangeRoom.Rows[i].Cells[j].Text;
//處理  
Str = Str.Replace(" ", " ");
cell1.AddElement(new Phrase(Str,fontChinese));
table.AddCell(cell1);
StrSplit = Str.Split(' ');
for (int k = 0; k < StrSplit.Length; k++)
cell1.AddElement(new Phrase(StrSplit[k], fontChinese));
}
}
}
document.Add(table);
Paragraph weizu = new Paragraph("统计:" + lblroomcount.Text + "栋 总" + lblfloorcount.Text + "层 总" + lblroomcount.Text + "间",fontChinese);
weizu.Alignment = iTextSharp.text.Rectangle.ALIGN_LEFT;
document.Add(weizu);
Paragraph mjcount = new Paragraph("使用面积:" + lblusemj.Text + " 建筑面积:" + lbljzmj.Text,fontChinese);
mjcount.Alignment = iTextSharp.text.Rectangle.ALIGN_RIGHT;
document.Add(mjcount);
//}
Hun.BLL.RZBLL.InsertRzInfo("XXXX!");
//} //第五步,关闭Document
document.Close();
}
附代码: //第一步,创建一个iTextSharp.text.Document 对象的实例:
Document document = new Document(PageSize.A4.Rotate());//纸张大小设置 //第二步,为该Document 创建一个Writer 实例:
PdfWriter writer = PdfWriter.GetInstance(document, new System.IO.FileStream(Server.MapPath("../PDFcd/" + txtheader.Text.Trim() + "~" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".pdf"), FileMode.Create));
//设置文档的属性
document.AddAuthor("XXX");
document.AddCreator("XXX,XXXX资产管理系统!");
document.AddKeywords("PDF,存档," + txtheader.Text.Trim());
document.AddSubject(txtheader.Text.Trim() + "PDF文档导出存档");
document.AddTitle(txtheader.Text.Trim()); //创建字体,必须的,不使用中文字体,就无法处理中文
BaseFont bfChinese = BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
//生成水印
writer.PageEvent = new PdfEventHanler("XX大学房屋信息存档", bfChinese);
//创建PDF文档中的字体
//BaseFont baseFont = BaseFont.CreateFont(
// FontPath,
// BaseFont.IDENTITY_H,
// BaseFont.NOT_EMBEDDED); ////根据字体路径和字体大小属性创建字体
//Font font = new Font(baseFont, FontSize);
//第三步,打开当前Document
document.Open(); //第四步,为当前Document 添加内容:做了三项1:段落 2:列表 3:表格
iTextSharp.text.Font fontChinese = new iTextSharp.text.Font(bfChinese, 10);
iTextSharp.text.Font fontbz = new iTextSharp.text.Font(bfChinese, 15);
iTextSharp.text.Font font = new iTextSharp.text.Font(bfChinese,20,iTextSharp.text.Font.BOLD,new iTextSharp.text.BaseColor(0,0,0));
//添加表名 Paragraph head = new Paragraph(this.txtheader.Text, font);
head.Alignment = iTextSharp.text.Rectangle.ALIGN_CENTER;
document.Add(head);
////添加表备注
Paragraph beizu = new Paragraph("制表单位:;" + this.ddlunit.Text + " 制表人: ;" + this.txtmademan.Text + " 制表时间:" + DateTime.Now.ToShortDateString(), fontbz);
beizu.Alignment = iTextSharp.text.Rectangle.ALIGN_CENTER;
document.Add(beizu); // 添加表头
PdfPTable table = new PdfPTable(gvwChangeRoom.Columns.Count); iTextSharp.text.pdf.PdfPCell cell = new PdfPCell(table);
cell.PaddingBottom = 0;
cell.PaddingTop = 10; for (int j = 0; j < gvwChangeRoom.Columns.Count; j++)
{
table.AddCell(new Phrase(gvwChangeRoom.HeaderRow.Cells[j].Text, fontbz));
}
// 告诉程序这行是表头,这样页数大于1时程序会自动为你加上表头。
table.HeaderRows= 1;
// 添加数据
string Str = "";
string[] StrSplit ;
//遍历原gridview的数据行
for (int ro = 0; ro < gvwChangeRoom.PageCount; ro++)
{
for (int i = 0; i < gvwChangeRoom.Rows.Count; i++)
{
for (int j = 0; j < gvwChangeRoom.Columns.Count; j++)
{
PdfPCell cell1 = new PdfPCell();
//table.AddCell(new Phrase(gvwChangeRoom.Rows[i].Cells[j].Text, fontChinese));
Str = gvwChangeRoom.Rows[i].Cells[j].Text;
//處理  
Str = Str.Replace(" ", " ");
cell1.AddElement(new Phrase(Str,fontChinese));
table.AddCell(cell1);
StrSplit = Str.Split(' ');
for (int k = 0; k < StrSplit.Length; k++)
cell1.AddElement(new Phrase(StrSplit[k], fontChinese));
}
}
}
document.Add(table);
Paragraph weizu = new Paragraph("统计:" + lblroomcount.Text + "栋 总" + lblfloorcount.Text + "层 总" + lblroomcount.Text + "间",fontChinese);
weizu.Alignment = iTextSharp.text.Rectangle.ALIGN_LEFT;
document.Add(weizu);
Paragraph mjcount = new Paragraph("使用面积:" + lblusemj.Text + " 建筑面积:" + lbljzmj.Text,fontChinese);
mjcount.Alignment = iTextSharp.text.Rectangle.ALIGN_RIGHT;
document.Add(mjcount);
//}
Hun.BLL.RZBLL.InsertRzInfo("XXXX!");
//} //第五步,关闭Document
document.Close();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货