【发布时间】:2016-08-30 16:54:00
【问题描述】:
我正在创建一个 C# 控制台应用程序,该应用程序使用 ITextSharp 在证书模板 (pdf) 文件中填写详细信息。需要填写的文本是动态生成的。
如果动态生成的文本超过一定大小,则字段名称将被截断。我已经想到了一种算法来解决这个问题,我需要给定字体和字体大小的页面中可以容纳的最大字符数。已经给我们提供了必须容纳文本的页面宽度。
我使用了以下代码:
string text = "This is the test string that needs to be accommodated";
// Registering a font
FontFactory.Register("somefont.ttf", "script");
var script = FontFactory.GetFont("script", 20f); // registers the font with the given type and size.
Phrase phrase_text = new Phrase();
phrase_text.Add(new Chunk(text, script));
ColumnText.ShowTextAligned(pbover, Element.ALIGN_CENTER, new Phrase(phrase_text), PageSize.A4.Height/2, 140, 0);
这段代码似乎工作正常,但是当我在屏幕上添加更大的文本时,文本会被截断,对齐仍然在中心(水平方向)。
我正在阅读有关使用图形库的内容,但无法解决问题。
【问题讨论】:
-
所以这是一个控制台应用程序?
-
使用
Graphics.MeasureString Method (String, Font)msdn.microsoft.com/en-us/library/6xe5hazb(v=vs.110).aspx获取测量值 -
是的,它是一个控制台应用程序。
-
@SarveshMishra,我正在尝试您建议的链接中的方法。
-
dotnet fiddle 为您提供帮助dotnetfiddle.net/nmcwxk