我创建了以下方法,将文本放在我想要的文档中(基于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。那么,设置文本位置和应用样式的好方法是什么?
感谢阅读和未来的答案。
答案 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#端口。