ABCPDF - 在将文本绘制到PDF页面之前计算文本所需的空间

时间:2011-11-04 16:12:05

标签: .net abcpdf

我希望在我在页面上绘制并检查其y位置之前判断一段文本是否适合页面底部。

有人知道ABCPDF是否可以这样做吗?

4 个答案:

答案 0 :(得分:2)

据我记得当我做PDF的时候(比如... 6 - 7年前用ABCPDF)我们用了很多时间用Graphics.MeasureString方法。
你可能想在MSDN

上看一眼

答案 1 :(得分:2)

根据我的经验,处理此问题的最佳方法是不要担心它是否适合尝试衡量。

  1. 将要书写的矩形设置为从当前位置到媒体框底部的所有位置。
  2. 将文本写入矩形,然后检查文本是否被截断。如果它被截断,则删除刚刚写入的对象。如果没有,那么一切都很好,你可以找到你写的文本的范围。
  3. 如果它不合适,请移至/创建下一页,将矩形设置为整页并重新尝试文本写入。
  4. 如果 被截断,那么就会出现问题,因为在不减小字体大小,行距或其他内容的情况下,您的文字永远不会放在单个页面上。
  5. 这不是不可克服的,因为你可以跨页面链接文本,但这是一个不同的问题。

答案 2 :(得分:0)

如果graphics.Measurestring不适合您,另一个选项是逐字测量某些字体的大小,以便您知道一行上有多少个字母,然后可以计算出给定矩形中您将拥有多少行并使用类似yVal = lineCount * 5的方法相应地调整矩形的大小。

如果我没记错的话,由于某种原因我不能使用measuretring函数,所以不得不以笨拙的方式做到这一点但是在我有多个不同大小的盒子的情况下它确实工作得很好。

答案 3 :(得分:0)

是的,ABCPDF会告诉你这个信息:如果文本无法添加到当前矩形,yourPdfDocInstance.AddHtml()将返回0(而不是添加任何文本)