这是一篇简单的教程,所以只涉及一些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. JavaScript promise基础示例

    const { info } = console // cooking function cook() { info('[COOKING] start cooking.') const p = new ...

  2. 详解Java线程池的ctl(线程池控制状态)【源码分析】

    0.综述 ctl 是线程池源码中常常用到的一个变量. 它的主要作用是记录线程池的生命周期状态和当前工作的线程数. 作者通过巧妙的设计,将一个整型变量按二进制位分成两部分,分别表示两个信息. 1.声明与 ...

  3. CheckList:ACL 2020 Best Paper

    Beyond Accuracy: Behavior Testing of NLP Models with CheckList. Marco Tulio Ribeiro, Tongshuang Wu, ...

  4. kafka-clients 1.0 内部响应接口文档

    AddOffsetsToTxnResponse version:0 name type defaultValue docString throttle_time_ms INT32 0 Duration ...

  5. Visual Studio自动编译gRPC工程的设置

    前段时间研究一个java程序,增加一些功能.其中用到java和C#的通信.自然,有多种办法,后来实际上是用javascript调用C#的REST WCF服务实现的.但是在查资料的过程中,发现有个Pro ...

  6. 简述 jpg png gif png-8 png-24 的区别

    Gif  格式的特点: 1.透明性,GIF是一种布尔透明类型,既可以是全透明,又可以是不透明,但是不可以半透明: 2.动画    GIF支持动画. 3.无损耗性    GIF是一种无损耗的图像格式,也 ...

  7. 从ReentrantLock详解AQS原理源码解析

    数据结构 java.util.concurrent.locks.AbstractQueuedSynchronizer类中存在如下数据结构. // 链表结点 static final class Nod ...

  8. 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称

    状况 如果在使用 vue 初始化项目的时候提示: vue : 无法将“vue”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次. ...

  9. 第2章 Hive安装

    第2章 Hive安装 2.1 Hive安装地址 1.Hive官网地址 http://hive.apache.org/ 2.文档查看地址 https://cwiki.apache.org/conflue ...

  10. 操作系统-文件系统(3)Linux目录配置

    文件系统通常采用分层结构实现:文件管理.目录管理.磁盘管理 文件控制块(File Control Block,FCB)是操作系统为每个文件建立的唯一数据结构,包含了全部文件属性. 通常把FCB汇集.组 ...