ITEXT字体设置

Windows中一般都是使用TrueType字体,每个中文版Windows操作系统均默认安装了宋体、仿宋、黑体和楷体四种字体,你还可以安装其他第三方字体,如安装了Office2000后,会自动安装华文行楷等字体,比较奇怪的是,在PDF文件中插入了一种本计算机才有的字体,在打开PDF文件的计算机上虽然没有该字体,但仍然能正常显示!这有别于Word文件,Word文件将当前计算机中没有的字体一律用宋体代替,这大概是意外收获吧。

字体文件一般保存在windir\Fonts目录中,扩展名为TTF,还有扩展名为TTC的字体文件,也是TrueType字体,不过是一个集合,也就是里面有多种字体。下面列出windows2000简体中文版四种标准字体的文件名称:

SIMSUN.TTC:宋体和新宋体

SIMKAI.TTF:楷体

SIMHEI.TTF:黑体

SIMFANG.TTF:仿宋体

TrueType字体应用

按下面的方法写入黑体字文字,大小为32磅:

BaseFont bfHei = BaseFont.createFont(@"c:\winnt\fonts\SIMHEI.TTF",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

Font font = new Font(bfHei, 32);

String text = "这是黑体字测试!";

document.Add(new Paragraph(text, font));

不要管BaseFont.createFont方法第二、三个参数的意思,依葫芦画瓢就行了,第一个参数显示就是字体文件存放的位置。

后面的代码都非常好理解,不再赘述。

TruType字体集合的应用

字体集合的使用同上面差不多,只是在在createFont方中要指定使用哪种字体。如:

BaseFont bfSun=BaseFont.createFont(@"c:\winnt\fonts\SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

font = new Font(bfSun, 16);

text = "这是字体集合中的新宋体测试!";

document.Add(new Paragraph(text, font));

不难看出,在使用BaseFont.createFont方法时,第一个参数@"c:\winnt\fonts\SIMSUN.TTC,1"中多了一个“,1”,表示使用序号为1字体,序号为0的字体为宋体。

毕竟我们不是做排版软件,有了上面的办法就基本上够用了,真正很复杂的PDF文件制作,不妨做成XML文件(最简单的办法就是用Word排版,然后另存为web页了),

比较烦人的是很多系统都没有仿宋GB2132,或者楷体GB2132.这个都可以去网上下载后,拷贝到windows的font文件夹下

### 如何在iTextPDF中设置中文字体 为了使iText能够正确显示中文字符,默认的字体配置并不适用,因为这些默认字体缺少对东亚语言的支持。为此,需要引入额外的库文件`iTextAsian.jar`来扩展iText的功能,从而允许使用适用于中文环境下的字体资源[^1]。 具体来说,在创建文档之前应该先定义好所需的中文字体对象: ```java // 创建基础字体实例并指定编码方式以及嵌入状态 BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); ``` 接着基于此基础字体构建更高层次的文字样式描述符——即`Font`类的对象: ```java // 定义具体的字体属性,比如字号大小和加粗程度 com.lowagie.text.Font fontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL); ``` 最后当向页面添加文本内容时,则可以利用上述自定义好的字体参数来进行渲染操作: ```java // 使用带有特定样式的段落形式插入到文档当中去 Paragraph paragraph = new Paragraph("你好", fontChinese); document.add(paragraph); ``` 值得注意的是,如果希望将所使用的字体随同最终生成的PDF一同打包分发出去的话,那么应当把第三个参数由`NOT_EMBEDDED`改为`EMBEDDED`以便让阅读者无需安装相同版本号的字型就能正常查看文件中的汉字部分[^3]。 另外一种方法是在XML配置文件里声明所需风格名称及其关联特性,如下所示: ```xml <style name="myStyle" isDefault="true" pdfFontName="STSong-Light" pdfEncoding="UniGB-UCS2-H" isPdfEmbedded="true"/> ``` 这种方式同样能实现相似的效果,并且可能更适合那些希望通过外部资源配置简化程序逻辑的应用场景[^2]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值