近期要用asp.net 2.0生成PDF,看了下书,查了下资料,发现可以有组件帮得上忙,可以下载itextsharp(https://sourceforge.net/projects/itextsharp)
下载,然后在工程中引用该控件,举例子如下

1  datatable 的内容转换为PDF
      首先,建立一个datatable转换为pdf的方法如下
 using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

/// <summary>
/// 将DataTable转化为PDF文件的方法
/// </summary>
public class TableToPDF
{
 public TableToPDF()
 {
 }
    /// <summary>
    /// 转换数据表为PDF文档
    /// </summary>
    /// <param name="Data">数据表数据</param>
    /// <param name="PDFFile">目标PDF文件全路径</param>
    /// <param name="FontPath">字体所在路径</param>
    /// <param name="FontSize">字体大小</param>
    /// <returns>返回调用是否成功</returns>
    public static bool ConvertDataTableToPDF(DataTable datatable, string PDFFilePath, string FontPath, float FontSize)
    {
        //初始化一个目标文档类
        Document document = new Document();
        //调用PDF的写入方法流
        //注意FileMode-Create表示如果目标文件不存在,则创建,如果已存在,则覆盖。
        PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(PDFFilePath, FileMode.Create));
        //打开目标文档对象
        document.Open();
        //创建PDF文档中的字体
        BaseFont baseFont =BaseFont.CreateFont(
            FontPath,
            BaseFont.IDENTITY_H,
            BaseFont.NOT_EMBEDDED);
        //根据字体路径和字体大小属性创建字体
        Font font = new Font(baseFont, FontSize);
        //根据数据表内容创建一个PDF格式的表
        PdfPTable table = new PdfPTable(datatable.Columns.Count);
        //遍历原table的内容
        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(), font));
            }
        }
        //在目标文档中添加转化后的表数据
        document.Add(table);
        //关闭目标文件
        document.Close();
        //关闭写入流
        writer.Close();
        return true;
    }
}

然后,在要调用转换的按钮的事件代码中调用就可以了
  /将目标文件保存在此项目下
        //字体使用simsun
        //字号选择14
     //mytb是数据datatable的名
        TableToPDF.ConvertDataTableToPDF(mytb, Server.MapPath(".") + @"\Table.pdf", "c:\\winnt\\FONTS\\simsun.ttc,1", 14); 

2  给出文本内容,生成PDF
    比如用户输入文本内容及要输出PDF的保存路径的话,也可以输出PDF
 ///<param="txt">:要输出文本的内容</param>

private void CreateTxt(string txt,string filepath)
    { 
        //创建文档对象
        Document document = new Document();
        //实例化生成的文档
  PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));
     //打开文档
        document.Open();
        //在文档中添加文本内容
  document.Add(new Paragraph(txt));
        //关闭文档对象
        document.Close();
    }

3    加页眉页脚
    private void CreatePDFheader(string filepath,string headertxt,string footertxt)
    {
        //创建文档对象
        Document document = new Document();
        // 创建文档写入实例
        PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create));

// 添加页脚
        HeaderFooter footer = new HeaderFooter(new Phrase(footertxt), true);
        footer.Border = Rectangle.NO_BORDER;
        document.Footer = footer;

//打开文档内容对象
        document.Open();

// 添加页眉
        HeaderFooter header = new HeaderFooter(new Phrase(headertxt), false);
        document.Header = header;
        //设计各页的内容
        document.Add(new Paragraph("This is First Page"));
        //新添加一个页
        document.NewPage();
        //第2页中添加文本
        document.Add(new Paragraph("This is Second Page"));
        // 重置页面数量
        document.ResetPageCount();
        //关闭文档对象
        document.Close();
    }

在asp.net 中生成PDF的方法的更多相关文章

  1. 在asp.net中显示PDF的方法:

    来源:http://www.cnblogs.com/tengs2000/archive/2009/02/23/1396646.html 一.直接显示,使用的还是原页面的URL Response.Con ...

  2. 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版 在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵 ...

  3. 【译】在Asp.Net中操作PDF - iTextSharp - 绘制矢量图

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 绘制矢量图 在上一篇iTextSharp文章中讲述了如何将现有的图片插入PDF中并对其进行操作.但有时,你需要在PDF中绘制不依 ...

  4. 【译】在Asp.Net中操作PDF – iTextSharp - 使用表格

    原文 [译]在Asp.Net中操作PDF – iTextSharp - 使用表格 使用Asp.Net生成PDF最常用的元素应该是表格,表格可以帮助比如订单或者发票类型的文档更加格式化和美观.本篇文章并 ...

  5. 【译】在Asp.Net中操作PDF – iTextSharp - 使用链接和书签

    原文 [译]在Asp.Net中操作PDF – iTextSharp - 使用链接和书签 用户和PDF文档的交互可以通过锚(链接)和书签进行,接着我前面iTextSharp的系列文章,本篇文章主要讲通过 ...

  6. 【译】在Asp.Net中操作PDF – iTextSharp-列表

    原文 [译]在Asp.Net中操作PDF – iTextSharp-列表 在前文中,我们已经知道了如何利用iTextSharp创建PDF文档,设置字体样式和风格.本文开始讲述iTextSharp中的有 ...

  7. 【译】在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本

    原文 [译]在Asp.Net中操作PDF – iTextSharp -利用块,短语,段落添加文本 本篇文章是讲述使用iTextSharp这个开源组件的系列文章的第三篇,iTextSharp可以通过As ...

  8. 【译】在Asp.Net中操作PDF - iTextSharp - 使用字体

    原文 [译]在Asp.Net中操作PDF - iTextSharp - 使用字体 紧接着前面我对iTextSharp简介博文,iTextSharp是一个免费的允许Asp.Net对PDF进行操作的第三方 ...

  9. 【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版(转)

    [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版   在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵盖 ...

随机推荐

  1. hdu 5524

    由于是完全二叉树,所以我们可以预先知道整棵树的形状,因此可以判断根节点的两个子节点哪个是满二叉树,哪个不是满二叉树(必然是一边满,一边不满),对于满的子节点,我们可以直接求出它的不同子树的个数,也就是 ...

  2. Linux系统中增加swap空间大小

    在我的树莓派pi3上编译dlib库时,发现由于内存不足导致编译失败.树莓派是1G内存,swap只有50M,因此将swap增加到500M,编译通过.具体设置方法如下: 使用free命令带上m参数,查看s ...

  3. find . -name file -exec echo abc > {} \; fail

    find . -name file -exec echo abc > {} \; fail 应该改用: find . -name file -exec bash -c 'echo abc > ...

  4. WebService(三)

    JAX-WS简单使用示例: 1.服务端 package com.rong.service; import javax.jws.WebMethod; import javax.jws.WebParam; ...

  5. 敏捷冲刺DAY4

    一. 每日会议 1. 照片 2. 昨日完成工作 登录界面的进一步完善 服务器搭建 建立数据库 3. 今日完成工作 发布和提供需求功能的实现 用户修改自己的信息 用户界面设计 管理员界面设计 4. 工作 ...

  6. CKeditor、CKFinder的安装配置

    CKEditor是不集成文件上传与管理功能的,文件上传管理功能被集成在CKFinder中,这是一个收费的商业软件. 如需要文件上传与管理功能建议使用FCKeditor或者手动破解CKFinder. 下 ...

  7. 【转】MySQL数据表中记录不存在则插入,存在则更新

    mysql 记录不存在时插入在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当记录不存在时才执行插入操作,本文介绍的就是这个问 ...

  8. ADO之command

    connection      command对象使用的数据库连接 commandText     执行的SQL语句 ExecuteNonQuery  执行不返回行的语句,如UPDATE等 Execu ...

  9. ONS发布订阅消息

    ONS, 全名Open Notification Service, 是阿里基于开源消息中间件RocketMQ的一个云产品. 首先,要申请阿里账号等.本地也可以申请阿里云账号自己调试.此处为公司拥有阿里 ...

  10. UVALive6434_Number Assignment

    简单dp题. 这样的,意思为给你n个数,要你现在将这n个数分为m组,使得所有组内最大值与最小值的差的和最小. 其实可以这样来考虑这个问题,首先可以把所有的数字从小到大排个序,显然如果有一种取法是最优的 ...