实战 iTextSharp

简介: 原文 实战 iTextSharp iTextSharp 是用来生成  PDF 的一个组件,在 1998 年夏天的时候,Bruno Lowagie ,iText 的创作者,参与了学校的一个项目,当时使用 HTML 来生成报告,但是,使用 HTML 打印的效果很不理想。

原文 实战 iTextSharp

iTextSharp 是用来生成  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();

现在,你应该已经得到一个 PDF 文档了。

目录
相关文章
C#实战:基于ItextSharp技术标签生成小工具
今天给大家分享小编基于ItextSharp制作的一款标签生成小工具,可供大家学习或者二次开发满足实际的需求使用。 使用技术:C\#+ItextSharp+Winfrom+Net4.0
C#实战:基于ItextSharp技术标签生成小工具
|
数据安全/隐私保护
PDF处理控件Spire.PDF常见问题解答
为方便使用者快速掌握和了解Spire.PDF,本文列举了PDF理控件Spire.pdf常见问题及解答欢迎下载最新版体验!
|
程序员
分享几篇文章(PDF版)
后天就要回老家了,除了团团年估计也没有其他好玩的,就琢磨下点经典文章带回去看看。 Google一番找到了老赵很早以前的文章: http://www.cnblogs.com/JeffreyZhao/archive/2009/03/02/1401259.html 说来惭愧,里面的十余篇文章我只看过一篇,正好就补补知识。
628 0
基于iTextSharp的PDF文档操作
  公司是跨境电商,需要和各种物流打交道,需要把东西交给物流,让他们发到世界各地。其中需要物流公司提供一个运单号,来追踪货物到达哪里?!   最近在和DHL物流公司(应该是个大公司)对接,取运单号的方式是调用对方提供的API,简单说,就是我们传一些发货地址和客户信息,要发的货物等,对方返回一个运单号和物流面单(就是我们淘宝快递上的面单)。
1550 0