一个古老的话题——aspx.net页面生成打印PDF

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

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

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

添加button按钮。代码呈上:

 

ExpandedBlockStart.gif 代码
    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( 0 0 0 ));
        PdfPTable pdftable 
=   new  PdfPTable( 2 );    // 设置成2列
        pdftable.SetWidths( new   float [] {  0.45f 0.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效果如下(至于其中的字体和表头等,那是后话):

转载于:https://www.cnblogs.com/ming5536/archive/2010/11/19/1882178.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值