asp.net生成PDF文件参考 .
TextSharp 是用来生成 PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 HTML 打印的效果很不理想。最后,他发现,使用 PDF 可以完美解决打印问题,为了能够在各个系统中使用,iText 组件库诞生了。
最初的 iText 主要是支持 Java 語言。之後針對Microsoft .NET C Sharp做了一個版本,也就是我們今天要介紹的 iTextSharp。
目前,iTextSharp 的版本是 5.1.2,下载地址:http://sourceforge.net/projects/itextsharp/files/
其中主要包含了核心组件:itextsharp.dll
但是,直接使用它并不能处理中文,你还要下载两个组件。
在下载页面中,注意图中标注的 extras 文件夹。
点击之后,可以看到如下的下载:
注意把标注的两个压缩包下载下来,这是使用中文的关键。解开两个压缩之后可以看到下面的两个文件。
iTextAsianCmaps.dll
iTextAsian.dll
在创建的项目中,将这三个程序集都添加到项目的引用中。
// 必须先加入资源
BaseFont.AddToResourceSearch(
"iTextAsian.dll"
);
BaseFont.AddToResourceSearch(
"iTextAsianCmaps.dll"
);
//"UniGB-UCS2-H" "UniGB-UCS2-V"是简体中文,分别表示横向字 和 纵向字
//"STSong-Light"是字体名称
BaseFont bf = BaseFont.CreateFont(
"STSong-Light"
,
"UniGB-UCS2-H"
, BaseFont.EMBEDDED);
// 也可以使用 TTF 字体
BaseFont bf0 = BaseFont.CreateFont(
"C:/WINDOWS/Fonts/SIMYOU.TTF"
, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
// 创建 PDF 文档
iTextSharp.text.Document document
=
new
iTextSharp.text.Document();
// 创建写入器实例,PDF 文件将会保存到这里
iTextSharp.text.pdf.PdfWriter.GetInstance(document,
new
System.IO.FileStream(
"Demo.pdf"
, System.IO.FileMode.Create)
);
// 打开文档
document.Open();
iTextSharp.text.Font font =
new
iTextSharp.text.Font(bf);
//写入一个段落, Paragraph
document.Add(
new
Paragraph(
"你好, PDF !"
, font));
document.Close();
using
System;
using
System.Data;
using
System.Configuration;
using
System.Web;
using
System.Web.Security;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Web.UI.WebControls.WebParts;
using
System.Web.UI.HtmlControls;
using
System.IO;
using
iTextSharp;
using
iTextSharp.text;
using
iTextSharp.text.pdf;
public
partial
class
_Default : System.Web.UI.Page
{
static
DataTable datatable =
new
DataTable(
"testpdf"
);
protected
void
Page_Load(
object
sender, EventArgs e)
{
if
(!Page.IsPostBack)
{
DataRow dr;
//建立Column例,可以指明例的类型,这里用的是默认的string
datatable.Columns.Add(
new
DataColumn(
"编号"
));
datatable.Columns.Add(
new
DataColumn(
"用户名"
));
for
(
int
i = 1; i < 5; i++)
{
dr = datatable.NewRow();
dr[0] = System.Convert.ToString(i);
dr[1] =
"测试"
+ System.Convert.ToString(i);
datatable.Rows.Add(dr);
}
}
}
protected
void
Button1_Click(
object
sender, EventArgs e)
{
try
{
Document document =
new
Document();
PdfWriter.GetInstance(document,
new
FileStream(Server.MapPath(
"Test.pdf"
), FileMode.Create));
document.Open();
BaseFont bfChinese = BaseFont.CreateFont(
"C:\\WINDOWS\\Fonts\\simsun.ttc,1"
, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
Font fontChinese =
new
Font(bfChinese, 12, Font.NORMAL,
new
Color(0, 0, 0));
//按设置的字体输出文本
document.Add(
new
Paragraph(
this
.TextBox1.Text.ToString(), fontChinese));
//输出图片到PDF文件
iTextSharp.text.Image jpeg01 = iTextSharp.text.Image.GetInstance(Server.MapPath(
"Images/gyl.jpg"
));
document.Add(jpeg01);
iTextSharp.text.Image jpeg02 = iTextSharp.text.Image.GetInstance(Server.MapPath(
"Images/yy.jpg"
));
document.Add(jpeg02);
PdfPTable table =
new
PdfPTable(datatable.Columns.Count);
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(), fontChinese));
}
}
document.Add(table);
document.Close();
Response.Write(
"<script>alert('导出成功!');</script>"
);
}
catch
(DocumentException de)
{
Response.Write(de.ToString());
}
}
}
asp.net生成PDF文件参考 .的更多相关文章
- asp.net生成PDF文件 (1)
asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...
- asp.net生成PDF文件(一)
这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- itextsharp c# asp.net 生成 pdf 文件
一切的开始必须要有2个dll, 可以通过nuget 包xiazai, 关键字是itextsharp. using iTextSharp.text; using iTextSharp.text.pdf; ...
- 在C#.NET中,如何生成PDF文件?主要有以下几个途径
1.使用.NET文件流技术:若通过.NET的文件流技术生成PDF文件,必须对PDF文件的语法很清楚,例如BT表示实体内容开始:ET表示实体内容结束:TD表示换行等等.我们可以从Adobe的官方网站上下 ...
- java调用wkhtmltopdf生成pdf文件,美观,省事
最近项目需要导出企业风险报告,文件格式为pdf,于是搜了一大批文章都是什么Jasper Report,iText ,flying sauser ,都尝试了一遍,感觉不是我想要的效果, 需要自己调整好多 ...
- 在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all
在js内生成PDF文件并下载的功能实现(不调用后端),以及生成pdf时换行的格式不被渲染,word-break:break-all 前天来了个新需求, 有一个授权书的文件要点击下载, 需要在前端生成, ...
- JavaWeb项目生成PDF文件添加水印图片并导出
一.前言 首先需要在Maven中添加相应的jar包依赖,若项目没用到Maven,也可自行下载相应所需的jar包(itextpdf.jar 与 itext-asian.jar),如下图所示.点此下载 M ...
- 小容量单片机生成pdf文件
工作上要求使用小容量单片机生成直接生成pdf文件.经过一段时间的摸索,其中参考了libharu,库太大,不适合在单片机上使用页参考了与非网上一位前辈的库,占用的RAM太大,不适合小容量单片机,主要资料 ...
- [itext]Java生成PDF文件
一.前言 最近在做也导出试卷的功能,刚开始是导出为doc,可是导出来格式都有变化,最后说直接将word转为pdf,可是各种不稳定,各种报错.最后想到直接将文件写入pdf(参考:http://www.c ...
随机推荐
- Ubuntu16.04 下如何安装搜狗拼音输入法【亲测有效】
Ubuntu16.04 下如何安装搜狗拼音输入法[亲测有效] 一.添加fcitx键盘输入法系统[系统默认是iBus] 1.将下载源添加至系统源: sudo add-apt-repository p ...
- iconfont的引入方法
第一步:使用font-face声明字体@font-face {font-family: 'iconfont';src: url('iconfont.eot'); /* IE9*/src: url('i ...
- SpringBoot项目中加入jsp页面
根据我们之前搭建好的SpringBoot+SSm的项目的基础上,来增加webapp/WEB-INF的文件,由此来完成jsp页面的跳转. 先增加jsp的pom依赖: <!-- https://mv ...
- Java数组和各种List的性能比较
以下程序分别对Java数组.ArrayList.LinkedList和Vector进行随机访问和迭代等操作,并比较这种集合的性能. package cn.lion.test; public class ...
- ubuntu18.04 安装docker
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1Change "stable" ...
- chrome bookmarks location
.config/google-chrome/Default file: Bookmarks
- mvn pom
使用本地指定目录下jar包 <dependency> <groupId>com.myself.abc</groupId> <artifactId>sam ...
- Nginx的upstream的5种分配方式
转自:Nginx的upstream目前支持5种分配方式 1.轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除. 2.weight指定轮询几率,weigh ...
- 禁止选中页面内容-兼容ie、firefox、chrome
使用js禁止用户选中网页上的内容,IE及Chrome下的方法一样.使用onselectstart, 比如: 在body中加入<body onselectstart="return fa ...
- C#语法糖($)(?.)(??)
内插字符串($) 实际上是C# 6.0对string.Format的改进,将字符串文本标识为内插字符串($)根据微软的例子来看: using System; public class Example ...