欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现pdf导出 .Net导出pdf文件

程序员文章站 2023-10-23 20:56:24
最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码、可以成功的实现导出pdf文件。  在编码前需要在网上下载个itextsharp.dl...

最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码、可以成功的实现导出pdf文件。 

在编码前需要在网上下载个itextsharp.dll,此程序集是必备的。楼主下载的是5.0版本,之前下了个5.4的似乎不好用。 

下载之后直接添加引用。 

<%@ page language="c#" autoeventwireup="true" codebehind="webpdf.aspx.cs" inherits="web导出pdf.webpdf" %>

<!doctype html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
  <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  <title></title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <br />
      输入文字测试:<input type="text" name="name" value="" runat="server" id="txtpdf"/>
      
      <asp:button id="button1" runat="server" onclick="button1_click" text="button" />
    </div>
  </form>
</body>
</html>

//上述代码乃前台页面,两个控件即可。下面即对应的后台代码
using system;
using system.collections.generic;
using system.data;
using system.linq;
using system.web;
using system.web.ui;
using system.web.ui.webcontrols;
using itextsharp;
using itextsharp.text;
using itextsharp.text.pdf;
using system.io;


namespace web导出pdf
{
  public partial class webpdf : system.web.ui.page
  {
    static datatable datatable = new datatable("testpdf");
    protected void page_load(object sender, eventargs e)
    {
      if (!ispostback)
      {
        datarow dr=null;
        //建立column例,可以指明例的类型,这里用的是默认的string 
        datatable.columns.add(new datacolumn("编号"));
        datatable.columns.add(new datacolumn("文件名"));
        for (int i = 0; i < 5; i++)
        {
          dr = datatable.newrow();
          dr[0] = system.convert.tostring(i);
          dr[1] = "测试导出pdf文件" + system.convert.tostring(i);
          datatable.rows.add(dr);

        }

      }
    }

    protected void button1_click(object sender, eventargs e)
    {
      try
      {
        document document = new document();
        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);
        itextsharp.text.font fontchinese = new itextsharp.text.font(bfchinese, 12, itextsharp.text.font.normal,new basecolor(0,0,0));

        //所输的内容按设置的字体到pdf文件
        document.add(new paragraph(this.txtpdf.value.tostring(), fontchinese));
        //输出图片到pdf文件 
        itextsharp.text.image jpeg01 = itextsharp.text.image.getinstance(server.mappath("image/001.png"));
        document.add(jpeg01);
    
        itextsharp.text.image jpeg02 = itextsharp.text.image.getinstance(server.mappath("image/usericon-1.png"));
        document.add(jpeg02); 
        pdfptable table = new pdfptable(datatable.columns.count);
        for (int i = 0; i < datatable.rows.count; i++)
        {
          for (int j = 0; j < datatable.columns.count; j++)
          {
            table.addcell(new phrase(datatable.rows[i][j].tostring(), fontchinese));
          }
        }
        document.add(table);
        document.close();
        response.write("<script>alert('导出成功!');</script>"); 
      }
      catch (exception ex)
      {
        response.write(ex.tostring());
      }
    }
  }
}

注意代码中的两个image图片,自己可在项目中随意添加对应的。如果上述代码全部写完发现不报错那么恭喜你可以成功导出。 

如果出现有的类异常失败无法找到该类,那么你需要引用C#实现pdf导出 .Net导出pdf文件此文件即可。 

至于每个人需要导出不同的样式pdf内容就要根据需求写相对应的代码了。 

C#实现pdf导出 .Net导出pdf文件 

导出成功pdf即存在项目文件夹中。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。