这是一篇简单的教程,所以只涉及一些iTextSharp生成pdf的简单应用,详细教程请搜索iTextSharp进入官网看官方文档(英文版)。

iTextSharp官方文档:https://itextpdf.com/sites/default/files/2019-10/DITO%20Whitepaper%20v12-2_1.pdf

Demo下载地址(附iTextSharp.dll文件):https://download.csdn.net/download/callmejeans/12068398

Demo主要代码如下:

 protected void ExportPDF(object sender, EventArgs e) {
DataTable PDFDataTable = GetDataTable();
PDFObj pdf = new PDFObj();
pdf.PDFRemark = DateTime.Now.ToShortDateString();
ConvertGrdiViewToPdf(PDFDataTable, pdf); } //初始值设定
class PDFObj{
//string fondpath = "C:\\Windows\\Fonts\\simsun.ttc,0";
public string fondpath = @System.Web.HttpContext.Current.Server.MapPath("./Source/Fonts/simsun.ttc") + ",0";//字体设置
public string PDFFilename = "TheSearchData";//文件标题
public float fontsize = ;//主要内容字体大小
public string PDFHeader = "员工信息表";//标题文字
public float PDFHeaderFontSize = ;//标题字体大小
public string PDFRemark;//备注文字
public float PDFRemarkFontSize = ;//备注文字大小
} //得到数据表
private DataTable GetDataTable(){
//新建PDFDemo DataTable
DataTable dt=new DataTable("PDFDemo");
DataColumn dc1=new DataColumn("UserID",Type.GetType("System.String"));
DataColumn dc2=new DataColumn("UserName",Type.GetType("System.String"));
DataColumn dc3=new DataColumn("Sex",Type.GetType("System.String"));
DataColumn dc4=new DataColumn("Birth",Type.GetType("System.DateTime"));
DataColumn dc5=new DataColumn("Nation",Type.GetType("System.String"));
dt.Columns.Add(dc1);
dt.Columns.Add(dc2);
dt.Columns.Add(dc3);
dt.Columns.Add(dc4);
dt.Columns.Add(dc5);
for(int i=;i<;i++)
{
DataRow dr=dt.NewRow();
dr["UserID"]="No"+(+i).ToString();
dr["UserName"]="张三"+i;
dr["Sex"]="男";
dr["Birth"] = System.DateTime.Now.ToString("yyyy-MM-dd");
dr["Nation"]="China";
dt.Rows.Add(dr);
}
return dt;
} #region convertToPDF
/// <summary>
/// Demo1
/// </summary>
/// <param name="sourcedate"></param>
/// <param name="PDFFileName"></param>
/// <param name="FontPath"></param>
/// <param name="FontSize"></param>
/// <param name="PDFObj"></param>
private static void ConvertGrdiViewToPdf(DataTable sourcedate, PDFObj PDFObj)
{
if (sourcedate != null)
{
string strFileName = PDFObj.PDFFilename + ".pdf";
DataTable dtrn = new DataTable();
int countColumns = sourcedate.Columns.Count;
int countRows = sourcedate.Rows.Count;
if (countColumns != && countRows != )
{
Document document = new Document(PageSize.A4, , , , );
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(HttpContext.Current.Server.MapPath(strFileName), FileMode.Create));
try
{
BaseFont baseFont = BaseFont.CreateFont(PDFObj.fondpath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, PDFObj.fontsize);
document.Open();
writer.Open();
//添加表名
if (PDFObj.PDFHeader != null)
{
iTextSharp.text.Font headfont = new iTextSharp.text.Font(baseFont, PDFObj.PDFHeaderFontSize, Font.BOLD | Font.UNDERLINE, new iTextSharp.text.BaseColor(, , ));
Paragraph head = new Paragraph(PDFObj.PDFHeader, headfont);
head.SpacingAfter = ;//设置段后距离
head.Alignment = iTextSharp.text.Rectangle.ALIGN_CENTER;
document.Add(head);
}
//添加备注
if (PDFObj.PDFRemark != null)
{
iTextSharp.text.Font Remarkfont = new iTextSharp.text.Font(baseFont, PDFObj.PDFRemarkFontSize);
Paragraph Remark = new Paragraph(PDFObj.PDFRemark, Remarkfont);
Remark.SpacingAfter = ;//设置段后距离
Remark.IndentationRight = ;//设置右缩进
Remark.Alignment = iTextSharp.text.Rectangle.ALIGN_RIGHT;
document.Add(Remark); }
PdfPTable table = new PdfPTable(countColumns);
table.DefaultCell.BackgroundColor = iTextSharp.text.BaseColor.LIGHT_GRAY;
for (int j = ; j < countColumns; j++)
{
table.AddCell(new Phrase(sourcedate.Columns[j].ColumnName, font)); // OK
}
table.HeaderRows = ; table.DefaultCell.BackgroundColor = iTextSharp.text.BaseColor.WHITE;
for (int i = ; i < countRows; i++)
{
for (int j = ; j < countColumns; j++)
{
table.AddCell(new Phrase((sourcedate.Rows[i][j].ToString() == null || sourcedate.Rows[i][j].ToString() == "&nbsp;") ? "" : sourcedate.Rows[i][j].ToString(), font));
}
}
document.Add(table);
}
catch (Exception)
{
throw;
}
finally
{
document.Close();
writer.Close();
}
try
{
String FullFileName = System.Web.HttpContext.Current.Server.MapPath(strFileName);
FileInfo DownloadFile = new FileInfo(FullFileName);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.ClearHeaders();
System.Web.HttpContext.Current.Response.Buffer = false;
System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename="
+ System.Web.HttpUtility.UrlEncode(DownloadFile.FullName, System.Text.Encoding.UTF8));
System.Web.HttpContext.Current.Response.AppendHeader("Content-Length", DownloadFile.Length.ToString());
System.Web.HttpContext.Current.Response.WriteFile(DownloadFile.FullName);
}
catch (Exception)
{
throw;
}
finally
{
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.End();
}
}
else
{
System.Web.HttpContext.Current.Response.Write
("<script type='text/javascript'>alert('数据为空,不值得导出pdf!');</script>");
}
}
else
{
System.Web.HttpContext.Current.Response.Write
("<script type='text/javascript'>alert('数据为空,请查询后再导出!');</script>");
}
}

iTextSharp生成PDF文件的更多相关文章

  1. C#使用itextsharp生成PDF文件

    项目需求需要生成一个PDF文档,使用的是VS2010,ASP.NET. 网络上多次搜索没有自己想要的,于是硬着头皮到itextpdf官网看英文文档,按时完成任务,以实用为主,共享一下: 使用HTML文 ...

  2. 根据PDF模板生成PDF文件(基于iTextSharp)

    根据PDF模板生成PDF文件,这里主要借助iTextSharp工具来完成.场景是这样的,假如要做一个电子协议,用过通过在线填写表单数据,然后系统根据用户填写的数据,生成电子档的协议.原理很简单,但是每 ...

  3. asp.net生成PDF文件 (1)

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

  4. itextsharp生成pdf后的直接打印问题

    原文 itextsharp生成pdf后的直接打印问题 小弟这两天用itextsharp生成pdf文档,生成的pdf可以直接保存在指定路径的文件夹下,可是user不想保存,想要点一下button,就可以 ...

  5. C#生成PDF文件流

    1.设置字体 static BaseFont FontBase = BaseFont.CreateFont("C:\\WINDOWS\\FONTS\\STSONG.TTF", Ba ...

  6. 在C#.NET中,如何生成PDF文件?主要有以下几个途径

    1.使用.NET文件流技术:若通过.NET的文件流技术生成PDF文件,必须对PDF文件的语法很清楚,例如BT表示实体内容开始:ET表示实体内容结束:TD表示换行等等.我们可以从Adobe的官方网站上下 ...

  7. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  8. ThinkPHP3.2.3扩展之生成PDF文件(MPDF)

    目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendo ...

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

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

随机推荐

  1. pycharm激活,此方法为永久激活。

    1.下载JetbrainsCrack-3.1-release-enc.jar文件 链接: https://pan.baidu.com/s/1eN4paXtLVLeUN1nLP335rA 提取码: yg ...

  2. JavaScript学习系列博客_17_JavaScript中的函数的参数、返回值

    数的形参(形式参数) - 定义函数时,可以在()中定义一个或多个形参,形参之间使用英文逗号隔开:定义形参就相当于在函数内声明了对应的变量但是并不赋值,形参会在调用时才赋值. 函数的实参(实际参数) - ...

  3. 基于Java的二叉树的三种遍历方式的递归与非递归实现

    二叉树的遍历方式包括前序遍历.中序遍历和后序遍历,其实现方式包括递归实现和非递归实现. 前序遍历:根节点 | 左子树 | 右子树 中序遍历:左子树 | 根节点 | 右子树 后序遍历:左子树 | 右子树 ...

  4. Windows下搭载虚拟机以及环境安装

    前言 最近回到家中进行赛前自主提升 模拟赛考虑到考试环境是NOI Linux 而大多数同学电脑环境为Windows 有同学想要模拟真实考试环境 但是NOI Linux的系统过于"阉割版&qu ...

  5. Reinforcement Learning Using a Continuous Time Actor-Critic Framework with Spiking Neurons

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Abstract 动物会重复奖励的行为,但基于奖励的学习的生理基础仅得到了部分阐明.一方面,实验证据表明神经调节剂多巴胺携带有关奖励的信息 ...

  6. python列表表达式

    [expression for i in iterable if condition] expression 就是对每一个元素的具体操作表达式;iterable是某个可迭代对象,如列表,元组或字符串等 ...

  7. 仓库ERP管理系统(springboot)

    查看更多系统:系统大全,课程设计.毕业设计,请点击这里查看 01 系统概述 基于SpringBoot框架和SaaS模式,非常好用的ERP软件,目前专注进销存+财务功能.主要模块有零售管理.采购管理.销 ...

  8. 滴滴AI Labs斩获国际机器翻译大赛中译英方向世界第三

    桔妹导读:深耕人工智能领域,致力于探索AI让出行更美好的滴滴AI Labs再次斩获国际大奖,这次获奖的项目是什么呢?一起来看看详细报道吧! 近日,由国际计算语言学协会ACL(The Associati ...

  9. 基于伪分布式Hadoop搭建Hive平台详细教程

    一.搭建环境的前提条件 环境:Linux系统 Hadoop-2.6.0 MySQL 5.6 apache-hive-2.3.7 这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包 ...

  10. ssm框架之springMVC拦截器

    1拦截器概述 1.1什么是拦截器? springMVC中的拦截器(Interceptor)类似于servlet中的过滤器(Filter),它主要用于拦截用户请求并作相应的处理.例如通过拦截器可以进行权 ...