自由与蓝天

昔日高山流水,快剑江湖,长街奔马。 今日谷歌百度,种菜发贴,写写代码。

博客园 首页 新随笔 联系 订阅 管理

需求:对数据库的数据读取后进行页面显示,当然是表格形式,那么如果我想对其进行转化成PDF打印输出,又该如何?

 一点不错,生成PDF,网上有很多方法,大部分都是itexsharp,在这里,我又整理了一下。

首先引入ICSharpCode.SharpZipLib.dll和Itextsharp.dll,网上可以下载到,很多,我感觉只引入Itextsharp.dll就足够了,均开源。

添加button按钮。代码呈上:

 

代码
   protected void Button1_Click(object sender, EventArgs e)
    {
   
        
string str1= "小潘";
        
string str2 = "";
        Document document 
= new Document();
        
try{
        PdfWriter.GetInstance(document, 
new FileStream(Server.MapPath("test.pdf"), FileMode.Create));
        document.Open();
       BaseFont bfChinese 
= BaseFont.CreateFont("C:\\WINDOWS\\Fonts\\simsun.ttc,1", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
        Font fontChinese 
= new Font(bfChinese, 12, Font.NORMAL, new Color(000));
        PdfPTable pdftable 
= new PdfPTable(2);   //设置成2列
        pdftable.SetWidths(new float[] { 0.45f0.65f });
        pdftable.WidthPercentage 
= 95//表格占页面的百分比  
        
//   //完成第一行的两列,需合并单元格
        PdfPCell tablename = new PdfPCell(new Paragraph("人员基本情况", fontChinese));
        tablename.UseAscender 
= true;
        tablename.HorizontalAlignment 
= Element.ALIGN_MIDDLE;
        tablename.Colspan 
= 2;//合并单元格
        pdftable.AddCell(tablename); //在pdftable中加入这个单元格  
        
// 完成第二行的两列
        PdfPCell namecell = new PdfPCell(new Paragraph("姓名:", fontChinese));   //名称  
        namecell.UseAscender = true;
        namecell.HorizontalAlignment 
= Element.ALIGN_MIDDLE;
        pdftable.AddCell(namecell); 
//在pdftable中加入这个单元格  
        PdfPCell namevalcell = new PdfPCell(new Paragraph(str1, fontChinese));  //"姓名的值"  
        namevalcell.UseAscender = true//可写可不写  
        namevalcell.HorizontalAlignment = Element.ALIGN_MIDDLE;
        pdftable.AddCell(namevalcell);
        
//完成第三行的两列
        PdfPCell namesexcell = new PdfPCell(new Paragraph("姓别:", fontChinese));   //名称  
        namesexcell.UseAscender = true;
        namesexcell.HorizontalAlignment 
= Element.ALIGN_MIDDLE;
        pdftable.AddCell(namesexcell); 
//在pdftable中加入这个单元格  
        PdfPCell namsexevalcell = new PdfPCell(new Paragraph(str2, fontChinese));  //"姓名的值"  
        namsexevalcell.UseAscender = true//可写可不写  
        namsexevalcell.HorizontalAlignment = Element.ALIGN_MIDDLE;
        pdftable.AddCell(namsexevalcell);

        document.Add(pdftable); 


        }
       
catch(Exception ex){
         
       }
        
finally
            document.Close();
        }
        Response.Redirect(
"test.pdf");
      
    }

 

   经测试,代码可用,PDF效果如下(至于其中的字体和表头等,那是后话):

posted on 2010-11-19 20:42  自由与蓝天  阅读(769)  评论(0编辑  收藏  举报