是否有任何技术可以计算AcroField中文本的高度?
换句话说,我有一个带有正文部分的模板PDF,我想将我的长文本粘贴到其中,我希望获得文本的高度。如果它溢出,请为文本的其余部分插入新页面。
答案 0 :(得分:1)
这将给出高度和宽度:
Vector curBaseline = renderInfo.GetBaseline().GetStartPoint();
Vector topRight = renderInfo.GetAscentLine().GetEndPoint();
iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(
curBaseline[Vector.I1], curBaseline[Vector.I2],
topRight[Vector.I1], topRight[Vector.I2]
);
Single curFontSize = rect.Height;
答案 1 :(得分:0)
只需将字段设置为零字体即可。这将自动调整字体大小,以便给定文本适合您的字段......在一定限度内。我认为它不会低于6点。
另一种选择是使用ColumnText
并致电myColText.go(true)
。这将“模拟”布局,让您知道在没有实际绘制PDF的任何内容的情况下会发生什么。只需添加一个与您的字段具有相同尺寸,字体和字体大小的columnText,您的结果应该相同。
事实上,我相信iText的文本字段呈现代码在内部使用ColumnText
。是的,请查看TextField.getAppearance()
的来源。
请注意,您的字段的边界框不会与文本布局的框相匹配...您必须考虑到镗孔样式&厚度。这就是我建议你看看来源的原因。