电子病历文本编辑器中文字断行及排版算法研究(2)
- 2013-04-17 10:47
- 作者:袁永福
- 来源:中国数字医疗网
断行
测量完字符的大小后,编辑器程序开始在内存中构造排版对象模型,不断的将字符填充到最后一个文档行,若文档行的字符宽度和加上准备添加的字符的宽度大于文档容器客户区宽度时,就进行断行,另起一行开始填充字符。
不过也存在提前断行的情况。为了尽量保证连续的英文字母字符和阿拉伯数字之间不能出现断行,这样会导致同一个逻辑上密切相关的单词被拆散放在两行了。因此遇到这种情况需要提前断行。
为此程序在执行断行的时候需要进行判断,如果下一个字符和文档行中最后几个字符都是英文字母字符或阿拉伯数字字符时,需要从右到左遍历最后一个文档行,将相关字符抽取出来,准备放置在下一行中。
当然这样的操作也不是绝对的,比如遇到连续的超级长的“单词”时,比如100个连续字符“a”,虽然基本上没有实际意义,但这是一种必需考虑的边界条件,很容易导致程序运行错误。因此在提前断行时需要进行这样的判断,若真的出现这种情况,那就取消提前断行。
共6页: 上一页 [1]2 [3][4][5][6]下一页 [查看全文] |