如何为文本设置位置和样式?

时间:2014-02-06 15:24:58

标签: c# itextsharp

我创建了以下方法,将文本放在我想要的文档中(基于stackoverflow主题)。

PdfContentByte cb = _pdfWriter.DirectContent;
            BaseFont bf = BaseFont.CreateFont();
            cb.BeginText();
            cb.SetFontAndSize(bf, size);
            cb.SetTextMatrix(x, y);
            cb.ShowText(text);
            cb.Stroke();
            cb.EndText();

我的问题是Basefont不支持BOLD,UNDERLINE或ITALIC。那么,设置文本位置和应用样式的好方法是什么?

感谢阅读和未来的答案。

1 个答案:

答案 0 :(得分:0)

首先,您需要了解字体系列和字体之间的区别。

Helvetica 是字体系列的一个示例。 Helvetica(常规) Helvetica Bold Helvetica Italic Helvetica Bold Italic 不同<的示例< / em> font。

假设您在定义bf时使用了常规Helvetica,那么您使用的是一种特定字体。如果您希望文本为粗体,则需要使用不同的字体,例如使用Helvetica Bold定义的bf_bold实例。

下划线不是字体的属性。如果您想绘制一条线,则需要使用moveTo()lineTo()stroke()运算符。

所有这一切都非常困难,我想你这样做会让我感到惊讶。就好像有人给你高级手册,隐藏初学者手册,只是为了让你受苦。

为什么不使用ColumnText在绝对位置绘制不同风格的文字?您在哪里找到了问题的片段,为什么不看the ColumnText examples that are available on the official iText web site?如果您害怕查看Java代码,您还可以找到示例here的C#端口。