zoukankan      html  css  js  c++  java
  • 一步一步 IText.Sharp 中文支持

    在初始使用IText.Sharp时,这个组件生成PDF文档,比较简单,默认情况下,它是不支持中文显示的,需要加入第三方的支持才能使用。

    一、扩展支持文件下载:

    http://sourceforge.net/projects/itextsharp/files/extras/

    image

    下载上图中框中的,就可以:

    二、使用方法如下:

       1: BaseFont.AddToResourceSearch("iTextAsian.dll");
       2:                         BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");

    注意:文件路径要使用全路径

    三、注册中文字体

    字体注册是非常方便的,使用如下:

    可以使用字体文件,也可以使用字体目录进行批量注册。

    注册字体文件:

       1: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
       2:                                              @"\..\Fonts\STSONG.ttf");
       3: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
       4:                                              @"\..\Fonts\simhei.ttf");
       5: FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
       6:                                              @"\..\Fonts\simsun.ttc");

    注册字体目录方法签名如下:

       1: public static int RegisterDirectory(String dir) 
       2: public static int RegisterDirectory(String dir, bool scanSubdirectories) 

    演示实例:

       1: static void Main(string[] args)
       2:         {
       3:             BaseFont.AddToResourceSearch("iTextAsian.dll");
       4:             BaseFont.AddToResourceSearch("iTextAsianCmaps.dll");
       5:             FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
       6:                                  @"\..\Fonts\STSONG.ttf");
       7:             FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
       8:                                  @"\..\Fonts\simhei.ttf");
       9:             FontFactory.Register(Environment.GetFolderPath(Environment.SpecialFolder.System) +
      10:                                  @"\..\Fonts\simsun.ttc");
      11:  
      12:             MemoryStream ms = new MemoryStream();
      13:             Document document = new Document();
      14:             PdfWriter writer = PdfWriter.GetInstance(
      15:   document, new FileStream(string.Format("{0}helloworld.pdf",
      16:                 AppDomain.CurrentDomain.BaseDirectory), FileMode.OpenOrCreate));
      17:             document.Open();
      18:  
      19:             document.Add(new Paragraph("中显示实例",FontFactory.GetFont("华文宋体", BaseFont.IDENTITY_H, 16)));
      20:             writer.CloseStream = false;
      21:             document.Close();
      22:  
      23:         }

    执行效果:

    image

  • 相关阅读:
    proc文件系统
    sysfs文件系统
    linux 下 进程和线程的区别
    Linux内核中常见内存分配函数
    内核空间与用户空间的通信方式
    DoDataExchange函数,UpdateData(TRUE)和UpdateData(FALSE)的区别
    C# 获取文件路径
    C# WinForm 中 MessageBox的使用详解
    C#对于文件操作
    线程间操作无效: 从不是创建控件的线程访问它。
  • 原文地址:https://www.cnblogs.com/LifelongLearning/p/1999688.html
Copyright © 2011-2022 走看看