首先,在
BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibri.ttf", "Identity-H", BaseFont.EMBEDDED);
您加载常规 Calibri 的字体文件。如果您从中派生任何Font
内容BaseFont
,则无论您设置哪种样式属性,它都会使用常规的 Calibri 字体文件。这尤其意味着
- “粗体”样式的实现不仅是填充正常的字形轮廓,而且还沿着它画一条线(所谓的“穷人粗体”的变体)和
- “斜体”样式是通过应用一个稍微倾斜的变换矩阵来实现的。
通过加载粗体或斜体 Calibri,您可以获得质量更好的粗体和斜体变体
BaseFont baseFontBold = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibrib.ttf", "Identity-H", BaseFont.EMBEDDED);
BaseFont baseFontItalic = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibrii.ttf", "Identity-H", BaseFont.EMBEDDED);
BaseFont baseFontBoldItalic = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibriz.ttf", "Identity-H", BaseFont.EMBEDDED);
并从匹配中派生出Font
风格“正常”的BaseFont
.
话虽如此,现在是您的主要问题:
我知道我可以做到:
font1.SetStyle("bold");
font1.SetStyle("italic");
但两者怎么样?也许还强调...
对于两者,您都可以像写的那样简单地做
font1.SetStyle("bold");
font1.SetStyle("italic");
即按顺序设置两者,因为SetStyle(String)
实际上更像是一个AddStyle
. 或者,虽然,你也可以做
font1.SetStyle("bold italic");
如果您需要将所选样式集重置为正常,您可以使用SetStyle(int)
which 真正像 setter 一样工作:
font1.SetStyle(0);
也许还强调...
可用样式的String
常量是
- “普通的”
- “胆大”
- “斜体”
- “斜”
- “强调”
- “直通”