我正在使用iTextSharp创建PDF。
该过程的一部分为PDF添加了简单的文本,而另一部分则创建了相同文本的大纲。
对于直接文本方面,我在iTextSharp中使用ShowTextAligned方法;这需要一个Basefont,无法设置风格。
对于大纲,我正在创建一个GDI GraphicsPath来获取点,然后将其转换为PDF曲线/线等.AddString方法需要一个Drawing.FontStyle
现在我的问题是我需要将AddString的样式设置为BaseFont使用的样式。 I.E如果Basefont呈现Regular,我需要将AddString fontstyle设置为常规
如何确定ShowFxtAligned中BaseFont使用的样式?
更多信息:
我也尝试过使用ColumnText;它允许您设置iTextSharp字体及其样式。虽然使用此方法会导致使用近似样式呈现的字体; I.E通常为常规字体并设置为粗体的字体会产生略微格式错误的粗体字。
修改
当我说我需要将BaseFont传递给ShowTextAligned时,我的意思是,为了使用这种方法,你必须首先使用PdfContentByte的SetFontAndSize设置字体和大小 - 这是需要的方法BaseFont。
我知道我必须遗漏一些显而易见的东西......我只是看不到木头的树木了。)
答案 0 :(得分:1)
您可以预先尝试定义基本字体,并在整个PDF文档中使用它。
请参阅iTextSharp - Working with Fonts
示例代码:
BaseFont bfTimes = BaseFont.CreateFont(BaseFont.TIMES_ROMAN, BaseFont.CP1252, false);
Font times = new Font(bfTimes, 12, Font.ITALIC, Color.RED);
上面的行创建一个BaseFont对象,并使用内置的常量值来设置字体系列和编码。它还指定false以在PDF文档中嵌入字体。使用BaseFont对象创建一个新的Font对象,并进一步设置点,样式和颜色的字体大小 - 再次使用iTextSharp的常量来表示这些值。
有关BaseFont的更多信息,请参阅其class definition。
答案 1 :(得分:0)
您可以使用SetColorFill方法。喜欢这个
content.BeginText();
BaseFont baseFont = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252,BaseFont.NOT_EMBEDDED);
content.SetFontAndSizebaseFont, 12);
BaseColor baseColor = new BaseColor(255, 0, 0);
content.SetColorFill(baseColor);
//or use predefined colors
content.SetColorFill(BaseColor.RED);
// use ShowTextAligned method
content.EndText();