泰山OFFICE技术讲座:同一行不同字号的字如何对齐绘制

  一行有不同字号的字,布局绘制时有几个方案:

  • 顶部对齐
  • 中部对齐
  • 底部对齐
  • 基线对齐(OFFICE选择,也应该是所有软件的选择)

字体结构的Baseline/Leading/Ascent/Descent的图示_柳鲲鹏的博客-CSDN博客_ascent descent 字体

  从上述博文中, 可以看到什么是基线。那么一行的基线是如何确定的呢?首先X方向布局完成,其次本行也确定位于本页内:

  • 遍历所有叶子。
  • 找到最大的叶子高度。有的叶子是图片,高度超过文本叶子。
  • 找到最大的叶子BaselineFromBottom。

  有两点要注意:BaseLine要从底部向上计算(因为行高度还不确定),要考虑底部有边框的情形。

  • 设置行高。
  • 设置BaselineFromTop

  即行高-BaselineFromBottom。这样方便叶子处理。

  • 绘制

  根据传递的y,加上BaselineFromTop,就是文字绘制起点。

猜你喜欢

转载自blog.csdn.net/quantum7/article/details/125537695