代码之家  ›  专栏  ›  技术社区  ›  Kevin Newman

解析CFF字体数据时堆栈上的额外项目

  •  0
  • Kevin Newman  · 技术社区  · 17 年前

    在处理订单时,我偶尔会在堆栈上添加额外的项目 hvcurveto vvcurveto

    4, 5, 12, 13, 20, 21, ...
    

    8, 9, 16, 17, 24, 25, ...
    

    对于某些字体,我得到的堆栈大小为10。由于某种原因,这里有一个额外的参数。

    曲线命令位于子例程中,额外的参数似乎被传递到子例程中。

    似乎只要CFF流的中间有提示命令,而不是一开始就有额外的参数。

    1 回复  |  直到 17 年前
        1
  •  1
  •   Kevin Newman    17 年前

    根据CFF规范,堆栈上不应该有额外的项目——开始和结束堆栈标记显然是有原因的。

    事实证明,我没有正确处理提示掩码,这错误地在堆栈上留下了额外的参数。