新闻资讯 | 控件产品 | 技术文章 | 购物车 | 合作伙伴 | 问题解答 | 电子简报 | PDF论坛 | 资源下载
您现在的位置:技术文章>PDF开发篇 首页|PDF应用篇|PDF开发篇|解决方案

Asp.Net(C#)生成PDF详解 第二篇: Hello PDF!

发布日期:2012-4-18 作者:三角猫 DeltaCat 出处:真有意思网(http://www.zu14.cn)

原文地址:http://www.zu14.cn/2010/08/19/dotnet-aspnet-itextsharp-create-pdf-watermask-header-footer-table-pdfptable-2/

第二篇Hello PDF! 你好,PDF!


有了 上一篇 的准备工作,我们现在开始真正的创建PDF的旅程了。

作为编程界的惯例,第一篇,当然是非 Hello World 莫属啦 ,不过,我这里叫 Hello PDF!

Let’s Go!

当然是添加引用了

using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;

简单代码

//定义一个Document,并设置页面大小为A4,竖向
iTextSharp.text.Document doc = new Document(PageSize.A4);
try
{
    //写实例
    PdfWriter.GetInstance(doc, new FileStream("chap01.pdf", 
FileMode.Create));
    //打开document
    doc.Open();
    //写入一个段落, Paragraph
    doc.Add(new Paragraph("Hello PDF !"));
    //关闭document
    doc.Close();
    //打开PDF,看效果
    Process.Start("chap01.pdf");
}
catch (DocumentException de)
{
    Console.WriteLine(de.Message);
    Console.ReadKey();
}
catch (IOException io)
{
    Console.WriteLine(io.Message);
    Console.ReadKey();
}

asp.net 生成 PDF

哈哈,是不是非常EASY啊,虽然效果很简陋,但终究是生成了文件。

下面,我们将上面的代码,稍作修改

将 doc.Add(new Paragraph(“Hello PDF !”));

改为

doc.Add(new Paragraph(“你好, PDF !”));

运行,看效果:

PDF

?? 你好,这几个字呢?消失啦。这是因为iTextSharp 默认没有中文字库,解决的方法,有2种。

  1. 使用iTextSharp自带的亚洲字库:iTextAsian.dlliTextAsianCmaps.dll
  2. 使用自己的字体库,动态载入字体

下面分别看一下2种方法的实现

//定义一个Document,并设置页面大小为A4,竖向
iTextSharp.text.Document doc = new Document(PageSize.A4);
try
{
    //写实例
    PdfWriter.GetInstance(doc, new FileStream("chap01.pdf", 
FileMode.Create));
    //打开document
    doc.Open();

    //载入字体
    BaseFont.AddToResourceSearch("iTextAsian.dll");
    BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");

    //"UniGB-UCS2-H" "UniGB-UCS2-V"是简体中文,分别表示横向字 
    //和 纵向字
    //"STSong-Light"是字体名称
    BaseFont baseFT = BaseFont.CreateFont("STSong-Light",
 "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
    iTextSharp.text.Font font = new iTextSharp.text.Font(baseFT);

    //写入一个段落, Paragraph
    doc.Add(new Paragraph("你好, PDF !", font));
    //关闭document
    doc.Close();
    //打开PDF,看效果
    Process.Start("chap01.pdf");
}
catch (DocumentException de)
{
    Console.WriteLine(de.Message);
    Console.ReadKey();
}
catch (IOException io)
{
    Console.WriteLine(io.Message);
    Console.ReadKey();
}

image

//定义一个Document,并设置页面大小为A4,竖向
iTextSharp.text.Document doc = new Document(PageSize.A4);
try
{
    //写实例
    PdfWriter.GetInstance(doc, new FileStream("chap01.pdf",
 FileMode.Create));
    //打开document
    doc.Open();

    //载入字体
    BaseFont baseFont = BaseFont.CreateFont(
        "C:\\WINDOWS\\FONTS\\SIMHEI.TTF", //黑体
        BaseFont.IDENTITY_H, //横向字体
        BaseFont.NOT_EMBEDDED);
    iTextSharp.text.Font font = new 
iTextSharp.text.Font(baseFont, 9);

    //写入一个段落, Paragraph
    doc.Add(new Paragraph("你好, PDF !", font));
    //关闭document
    doc.Close();
    //打开PDF,看效果
    Process.Start("chap01.pdf");
}
catch (DocumentException de)
{
    Console.WriteLine(de.Message);
    Console.ReadKey();
}
catch (IOException io)
{
    Console.WriteLine(io.Message);
    Console.ReadKey();
}

image

好了,这篇就到此OK了。

敬请关注后续,第三篇 PDF 文件属性 的设置及文件加密

发布人:管理员 【报告错误】·【推荐好友】·【打印文章】
相关评论 本文现有 0 条评论 评分人数: 0 平均分: 0
相关评论
用户名: 密  码:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
注意:请不要在评论中含与内容无关的广告链接,违者封ID
文章搜索
推荐文章
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
热门点击
一个简单的PDF文件结构的分析(22340)
PHP的FDF文档支持(16147)
用C#制作PDF文件全攻略(13578)
Word转换PDF格式的C#或(12119)
pdfMaker文章:PDF加(11627)
ITextRenderer学习(11083)
PDF文件加密仿真(11036)
怎样用iReport制作Web(10384)
iText PDF概述(1)(9888)
循序渐进学习iTextShar(9833)
热门评论
从pdf文档中提取出文本(8)
PDFlib开发:创建超文本元(2)
客户端自动打印PDF(Prin(2)
浅谈PDFlib中文输出(一)(2)
xml的转换之pdf 2 ((1)
xml的转换之pdf 1 (x(1)
PDF知识讲座(1)(1)
PDFBox使用简介(1)
使用正则表达式计算PDF文档的(1)
word转pdf(1)