.Net 中使用 iTextSharp 组件生成 PDF

因为工作内容 ASP.NET 中需要生成 PDF 文件,但是 .Net framework 并没有内嵌生成 PDF 的功能,所以只能是在网上找找,经多番查找验证,最后找到很容易上手且很实用的 library - iTextSharp ;
所以下面文章中的代码也是网上搜寻资料,再加上自己实际验证运行结果后,再贴出来的代码,欢迎同行指正…

该函数库原名是 iText,主要是用于 Java 编程语言,之后针对 Microsoft .NET C Sharp 做了一个版本,也就是我们今天要介绍的 iTextSharp,针对PDF文件的制作而修改,功能介绍如下:
1. Create:Automate、Convert、Sign、Encrypt。
2. Read:Extract。
3. Update:Stamp、Fill out、Split/Merge、Convert、Sign、Encrypt。

接下来咱们一起使用 iTextSharp 生成 PDF 文档;
4. 我的ASP .NET开发还原是Microsoft Visual Studio 2012 版,使用的编程语言是C#。
5. iTextSharp 目前版本是 5.5.13.1,下载地址:http://sourceforge.net/projects/itextsharp/ 。清请先下载zip,解压后只有一个dll,利用Add Reference方式将 itextsharp.dll 加入项目的Bin目录,接下来就可以使用 iTextSharp 制作 PDF 文件了。 Microsoft Visual Studio 可直接在项目中 “工具” >> “NeGet 程序包管理器" >> "管理解决方案的 NetGet 程序包(N)…"中直接安装
在这里插入图片描述

1.首先创建一个 Web Application 的项目

在这里插入图片描述
先加入以下 References,因为会使用到 MemoryStream,所以必须引用 using System.IO;
在这里插入图片描述
在这个例子中,我们使用 Web Application 在 Server Memory 生成 PDF 文档,使用者可以自行下载预览和存储,采用的是 PdfWriter 类别:

	    Document doc = new Document(PageSize.A4, 40, 40, 40, 40);  //设置PageSize and Margin left,right,top,button;
        MemoryStream pdfMS = new MemoryStream();
        PdfWriter pdfWriter = PdfWriter.GetInstance(doc, pdfMS); //PDF 内容放入到流中

若是要在 Server FileSystem 中先生成 PDF,可以用下列代码:

   	 string path = Server.MapPath("pdf");
     PdfWriter pdfWrites = PdfWriter.GetInstance(doc, new FileStream(path + "/pdfexample.pdf", FileMode.Create));

在 PDF 文档中内容要显示中文,最重要的就是字体设置,如果没有正确设置中文字体,则显示的中文内种会出现乱码的问题。
首先设置基本类型的字体,simsun.ttf 是系统提供的标准字体,宋体,IDENTITY_H 是指编码(The Unicode encoding with horizontal writing),以及是否要将字体嵌入到 PDF 中档中,再来针对字体做设置,例如 Font Size ,是否加粗,是否倾斜,以及字体颜色等等,当然还可以使用提供的其他字体类型;

字体设置:

 			BaseFont bsChinese = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttf,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);  //宋体
            BaseFont titleChinese = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);//黑体

            Font bsFont = new Font(bsChinese, 12); //字体大小
            Font bsFont_blue = new Font(bsChinese, 40, Font.NORMAL, new BaseColor(51, 0, 513)); //字体大小、样式与颜色
            Font bsFont_msg = new Font(bsChinese, 12, Font.ITALIC, BaseColor.RED);  //字体大小、样式与颜色

            Font titleFont = new Font(titleChinese, 15);// 字体大小

打开 PDF 文档,写入内容,然后关闭 PDF 文档:

			doc.Open();  //打开PDF 文档
			doc.Add(new Paragraph(10f,"我的第一个 PDF 文档",bsFont));  // PDF 内容
			doc.Close(); //关闭 PDF 文档

若是要在客户端展示 PDF,并可以下载,必须加上下面一段代码,将 PDF 输出至浏览器客户端

			Response.Clear();
            Response.AddHeader("Content-Disposition", "attachment;filename=pdfExample.pdf");
            Response.ContentType = "application/octe
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值