今天转博客园看到有人发表了一篇生成PFd的文章,准备自己也留一份准备以后用到的时候方便调用;

首先去itextsharp网站下载控件(https://sourceforge.net/projects/itextsharp)

将下载后的控件引用到自己的项目里面,主要的bll文件为:itextsharp.dll文件

1、根据DataTable生成PDF文件

添加Itextsharp引用

using iTextSharp;
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

应用代码

 /// <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;
}
/// <summary>
/// 生成Dataset
/// </summary>
/// <returns></returns>
private DataSet GetSet()
{
DataSet ds = new DataSet();
string sql = "select * from T_AjaxXML";
string Config = ConfigurationManager.ConnectionStrings["Config"].ConnectionString;
using (SqlConnection cnn = new SqlConnection(Config))
{
using (SqlCommand cmm = new SqlCommand(sql, cnn))
{
SqlDataAdapter dapter = new SqlDataAdapter(cmm);
dapter.Fill(ds);
}
} return ds;
}
调用方法: ConvertDataTableToPDF(GetSet().Tables[0], Server.MapPath("~/Table.pdf"), "C:\\Windows\\Fonts\\simsun.ttc,1", 14);

2、根据文本内容生成PDF文件

 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、生成页眉页脚(不过iTextSharp5.5这个版本没有了这个方法,麻烦亲们帮忙找一个)

 private void CreatePDFheader(string filepath, string headertxt, string footertxt)
{
//创建文档对象
Document document = new Document();
// 创建文档写入实例
PdfWriter.GetInstance(document, new FileStream(filepath, FileMode.Create)); PdfPageEventHelper hh = new PdfPageEventHelper(); // 添加页脚
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文件 (1)

    asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...

  2. asp.net生成PDF文件参考 .

    TextSharp 是用来生成  PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 ...

  3. Asp.Net生成RSS方法

    一.RSS简介 什么是RSS? RSS是一种网页内容联合格式(web content sydication format). 它的名字是Really Simple Syndication的缩写. RS ...

  4. asp.net生成PDF文件(一)

    这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...

  5. itextsharp c# asp.net 生成 pdf 文件

    一切的开始必须要有2个dll, 可以通过nuget 包xiazai, 关键字是itextsharp. using iTextSharp.text; using iTextSharp.text.pdf; ...

  6. 在asp.net 中生成PDF的方法

    近期要用asp.net 2.0生成PDF,看了下书,查了下资料,发现可以有组件帮得上忙,可以下载itextsharp(https://sourceforge.net/projects/itextsha ...

  7. [轉載]史上最强php生成pdf文件,html转pdf文件方法

    之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有 ...

  8. ASP.NET 将数据生成PDF (二)

    可以下载itextsharp(https://sourceforge.net/projects/itextsharp)下载,然后在工程中引用该控件,举例子如下 1  datatable 的内容转换为P ...

  9. asp.net生成二维码的方法

    asp.net生成二维码的方法 [复制链接]     这个要利用一个Dll文件. 如下 Gma.QrCodeNet.Encoding.dll (105.5 KB, 下载次数: 27) 当然大家也可以直 ...

随机推荐

  1. OnTouchListener事件监听实现方式之GestureDetector

    当用户触摸屏幕的时候,会产生许多手势,例如down,up,scroll,filing等等. 一般情况下,我们知道View类有个View.OnTouchListener内部接口,通过重写他的onTouc ...

  2. windws 安装jdk

    (1) 到官网下载好jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html (2 ...

  3. http请求数据

    /// <summary>        /// http请求post数据        /// </summary>        /// <param name=&q ...

  4. codeforces 676C C. Vasya and String(二分)

    题目链接: C. Vasya and String time limit per test 1 second memory limit per test 256 megabytes input sta ...

  5. 转: Android基于HLS和RTMP协议的第三方SDK选择

    转自: http://isunxu.xyz/android/between-rtmp-and-hls-third-party-choice/ 协议的详解网上资料都太多了,我就不赘述了.Android上 ...

  6. windowSoftInputMode属性详解

    转自:http://blog.csdn.net/twoicewoo/article/details/7384398 activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Andro ...

  7. android:launchMode概述

    android:launchMode An instruction on how the activity should be launched. There are four modes that ...

  8. 联系电话正则表达式(jquery表单验证)

    一.实现的效果图: 二.CSS样式 /*验证样式*/ .onError{ vertical-align: middle; color: #ff0000; line-height: 22px; padd ...

  9. 以OpenGL方式运行Unity

    Unity在Windows上默认以DirextX的方式运行,在MacOS和Linux上默认以OpenGl的方式运行, 如果希望在Windows上以OpenGL的方式运行可以在命令行中输入 -force ...

  10. 3DES 加解密,对长度不限制

    #region 3DES /// <summary> /// 3DES加密 /// </summary> /// <param name="strString& ...