iTextSharp 制作 PDF文件(显示表格,图片)

根据业务要求,需要把数据库中的数据在PDF中显示,查阅了很多资料,选择iTextSharp.dll来帮助自己完成。经过一天的资料整理,半天的DEMO设计,特把劳动成功做一记录。

生成PDF文件的代码:

/// <summary>
  /// 数据输出到pdf
  /// </summary>
  /// <param name="selectData"></param>
    void PrintPdf(DataTable dt)
    {
       //第一步 创建Document
        //横向A4纸张
        Rectangle Rec = new Rectangle(PageSize.A4.Rotate());
        //public Document(Rectangle pageSize, int marginLeft, int marginRight, int marginTop, int marginBottom);

        Document doc = new Document(Rec,36F,36F,40F,40F);
       

      //第二步  创建Writer实例
         //创建临时文件
        string Path = Server.MapPath("../TempFile/");
        if (Directory.Exists(Path) == false)
        {
            Directory.CreateDirectory(Path);
        }
        string FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".pdf";
        Path += FileName;
        PdfWriter.GetInstance(doc, new FileStream(Path, FileMode.Create));
       
       //第三步  打开Document
        doc.Open();
      

       //  第四步   写Document 
  
        PrintPdfTable(ref doc, dt, Rec);
         
    
       //第五步 关闭Document
        doc.Close();
       
        doc.Dispose();
        char[] SChar = new char[] { '/' };
        string Url = Request.Url.ToString();
        string[] sUrl = Url.Split(SChar);
        Url = "";
        for (int i = 0; i <= sUrl.Length - 2; i++)
        {
            Url += sUrl[i];
        }
        Url = "../TempFile/" + FileName;
        Response.Write("<script language=\"javascript\">window.open('" + Url + "');</script>");
    }

表格嵌套:把一个子表作为元素加入父表的一个单元格,例如:mFirstCellT.AddElement(whiteTable);
单元格中显示图片:把图片作为单元格的背景图片,例如:

        System.Drawing.Image img_1 = System.Drawing.Image.FromFile(path);
        iTextSharp.text.Image img0 = iTextSharp.text.Image.GetInstance(img_1, iTextSharp.text.BaseColor.WHITE);

        PdfPCell fiSecondCell = new PdfPCell();
        
        fiSecondCell.Image = img0;

 设置行高:如果是标准表格,设置单元格的行高就OK了。

 设置行宽:在造表的时候,PdfPTable SecondTable = new PdfPTable(new float[] { 30F,60F});就OK。

设置表格不显示边框:设置单元格     sFirstCell.BorderColor = BaseColor.WHITE;sFirstCell.BorderWidth = 0F;
       

 

 

 

 

 

转载于:https://www.cnblogs.com/lover6796/p/3142023.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值