protected void Page_Load(object sender, EventArgs e)
{
var doc1 = new Document(PageSize.A4, 50, 50, 20, 50);//设定PageSiza及marginleft,right,top,botton
MemoryStream memory = new MemoryStream();
PdfWriter pdfwriter = PdfWriter.GetInstance(doc1, memory);
BaseFont bfChinese = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\SIMKAI.TTF", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font ChFont = new Font(bfChinese, 20);
Font ChFont_blue = new Font(bfChinese, 20, Font.NORMAL, new BaseColor(0, 0, 0));//20代表字体大小,Font.NORMAL表示字体, new BaseColor(0, 0, 0)字体颜色
Font ChFont_msg = new Font(bfChinese, 12, Font.ITALIC, BaseColor.RED);
doc1.Open();
doc1.Add(new Paragraph(1f, "Hello,大家好!", ChFont_blue));
Chunk c = new Chunk("三层体系结构,是在客户端与数据库之间加入了一个中间层,也叫组件层。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即使这三个层放置到一台机器上。 三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交换.", ChFont);
Phrase p1 = new Phrase(c);
doc1.Add(p1);
Chunk c1 = new Chunk("A开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。", ChFont);
Chunk c2 = new Chunk("B使用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。", ChFont_blue);
Chunk c3 = new Chunk("C本系统使用Microsoft Visual Studio 2005和Microsoft SQL Server 2005开发工具,而这两个开发工具相对而言也是比较简单、易学的。开发语言使用C#,这种面向对象语言,相对于C,C++而言也简单很多,主要是开发人员对C#更加熟悉。所以技术上也是可行的。", ChFont_msg);
Phrase p2 = new Phrase();
p2.Add(c1);
p2.Add(c2);
p2.Add(c3);
Paragraph pg = new Paragraph(p2);
// pg.SetAlignment("Justtify");//左右对齐
pg.FirstLineIndent = 20f;//段落句首缩进
pg.SetLeading(0.0f, 2.0f); //设定行距
doc1.Add(pg);
//表格测试
PdfPTable table = new PdfPTable(new float[] { 2, 1, 1, 3 });
table.TotalWidth = 450f;
table.LockedWidth = true;
PdfPCell header = new PdfPCell(new Phrase("Header", new Font(Font.FontFamily.HELVETICA, 10f, Font.BOLD)));
header.Colspan = 4;
table.AddCell(header);
table.AddCell("Cell 1");
table.AddCell("Cell 2");
table.AddCell("Cell 3");
table.AddCell("Cell 4");
PdfPCell itemname = new PdfPCell(new Phrase("检查项目", ChFont));
itemname.Colspan = 1;
table.AddCell(itemname);
PdfPCell content = new PdfPCell(new Phrase("内容" + itemname.Width, ChFont));
content.Colspan = 3;
table.AddCell(content);
PdfPCell rows = new PdfPCell(new Phrase("内容", ChFont));
rows.Rowspan = 3;
table.AddCell(rows);
for (int i = 1; i <= 3; i++)
{
table.AddCell("Cell" + i.ToString() + "1");
table.AddCell("Cell" + i.ToString() + "2");
table.AddCell("Cell" + i.ToString() + "3");
}
table.AddCell("Row 1");
PdfPCell row = new PdfPCell(new Phrase("合并3列3行A开发人员可以将应用的商业逻辑放在中间层应用服务器上,把应用的业务逻辑与用户界面分开。在保证客户端功能的前提下,为用户提供一个简洁的界面。这意味着如果需要修改应用程序代码,只需要对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。从而使开发人员可以专注于应用系统核心业务逻辑的分析、设计和开发,简化了应用系统的开发、更新和升级工作。B使用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因为当子程序模块未执行结束时,主程序模块只能处于等待状态。C本系统使用Microsoft Visual Studio 2005和Microsoft SQL Server 2005开发工具,而这两个开发工具相对而言也是比较简单、易学的。开发语言使用C#,这种面向对象语言,相对于C,C++而言也简单很多,主要是开发人员对C#更加熟悉。所以技术上也是可行的。", ChFont_blue));
// Chunk c3 = new Chunk("C本系统使用Microsoft Visual Studio 2005和Microsoft SQL Server 2005开发工具,而这两个开发工具相对而言也是比较简单、易学的。开发语言使用C#,这种面向对象语言,相对于C,C++而言也简单很多,主要是开发人员对C#更加熟悉。所以技术上也是可行的。", ChFont));
row.Rowspan = 3;
row.Colspan = 3;
table.AddCell(row);
table.AddCell("Row 2");
table.AddCell("Row 3");
doc1.Add(table);
doc1.Close();
Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=pdfExamply.pdf");
Response.ContentType = "application/octet-stream";
Response.OutputStream.Write(memory.GetBuffer(), 0, memory.GetBuffer().Length);
Response.OutputStream.Flush();
Response.OutputStream.Close();
Response.Flush();
Response.End();
}