C# iTextSharp将字体样式应用于现有字体
在文档的开头,我创建了一种新字体:C# iTextSharp将字体样式应用于现有字体,c#,itext,font-style,C#,Itext,Font Style,在文档的开头,我创建了一种新字体: BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibri.ttf", "Identity-H", BaseFont.EMBEDDED); var font1 = new Font(baseFont, 12, Font.NORMAL); 在同一文档的某个地方,我想使用不同字体的字体(FANTHANCE和SUPE):粗体和斜体。 我是否可以更改font1的样式,还是必须创建新字体 注:我
BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibri.ttf", "Identity-H", BaseFont.EMBEDDED);
var font1 = new Font(baseFont, 12, Font.NORMAL);
在同一文档的某个地方,我想使用不同字体的字体(FANTHANCE和SUPE):粗体和斜体。
我是否可以更改font1的样式,还是必须创建新字体 注:我知道我可以做到:font1.SetStyle("bold");
font1.SetStyle("italic");
font1.SetStyle("bold");
font1.SetStyle("italic");
但两者如何?也可能在下面画线。首先,在
BaseFont baseFont = BaseFont.CreateFont(@"C:\Windows\Fonts\Calibri.ttf", "Identity-H", BaseFont.EMBEDDED);
加载常规Calibri的字体文件。如果从该BaseFont
派生任何Font
,则无论您设置了哪些样式属性,它都使用常规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);
以及从匹配的BaseFont
导出样式为“normal”的Font
话虽如此,现在谈谈你的主要问题: 我知道我能做到:
font1.SetStyle("bold");
font1.SetStyle("italic");
font1.SetStyle("bold");
font1.SetStyle("italic");
但两者如何?也许还可以强调
对于这两种情况,你可以简单地按照你写的做
font1.SetStyle("bold");
font1.SetStyle("italic");
i、 e.按顺序设置这两种样式,因为SetStyle(String)
实际上更像AddStyle
。不过,你也可以这样做
font1.SetStyle("bold italic");
如果需要将所选样式集重置为正常,可以使用SetStyle(int)
,它的工作原理与setter应该:
font1.SetStyle(0);
也许还可以强调
可用样式的字符串
常量为
- “正常”
- “粗体”
- “斜体”
- “斜的”
- “下划线”
- “线路通过”