首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iText (Java版本)中的TIMES新罗马字体

iText (Java版本)中的TIMES新罗马字体
EN

Stack Overflow用户
提问于 2010-12-18 03:35:28
回答 1查看 13K关注 0票数 3

我需要在iText中这样做:

代码语言:javascript
复制
Font fuente=new Font(Font.getFamily("ARIAL"),30,Font.BOLD);

但是我需要在段落上使用TIMES的新罗马字体,而不是使用ARIAL字体。我怎么才能做到这一点呢?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-18 05:28:42

你有麻烦了。

Font.getFamily(字符串)仅适用于"Base 14“字体、Helvetica、Times Roman、Courier (加上它们的粗体和斜体变体)、Symbol和ZapfDingbats。请求除这些字体之外的任何字体都将返回FontFamily.UNDEFINED。

你的代码并不像你想的那样工作。如果你碰巧用的是Arial,那是因为它是默认字体。

你想要的是FontFactory.getFont(...)。在FontFactory可以按名称返回给定字体之前,您需要注册该字体的文件。要做到这一点,最简单的方法是调用FontFactory.registerDirectories(),它将枚举操作系统用来存储字体的所有目录,并注册在那里找到的所有字体。这将花费更长的时间,这取决于您有多少字体,以及这些字体有多大。很多CJKV字体需要相当长的时间才能注册...大概不到30秒,但我的野兽系统可能需要10-20秒才能做到这一点(但我有很多大字体)。

您也可以将单个文件注册到FontFactory.register(fontPath),但这要求您首先知道在哪里可以找到它们。

在任何情况下,您的代码都可能是这样的:

代码语言:javascript
复制
FontFactory.registerDirectories();

Font fuente = FontFactory.getFont("Times New Roman");

在查找字体时,FontFactory确实忽略了大小写。Font.getFamily()不需要。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4474125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档