碰到一个奇葩问题。用户说三行文字开头两个字空格一样。但是打印预览和打印最后一行前两个字之间的空格就是隔的远些。
文字是这样的
打印却是下图那样的,明显病毒两个字远很多
开始怀疑是不是业务本身数据就多加空格了。调试了打印输出数据后发现看着是一样的。
然后怀疑是不是上面的是空格,最后那个是tab,把输出数据拷贝到notepad++显示所有字符来看确实都是两个空格。
然后怀疑是不是打印dll调用过程中数据被处理了,又到打印画字符串地方弹窗看数据串和绘制字符串参数都没问题
然后就只能相信是微软dotnet的bug了,然后试了好久,把绘制字符串api还有停靠属性看了个遍感觉还是不应该是微软bug。
最后突然想到是不是字体的问题,然后把字体从宋体换成微软雅黑试了也是一样。后面换了楷体竟然正常了。看来是字体导致的,接着试新宋体等也是正常。
那么基本定位是字体导致打印问题。那么到底是微软问题还是字体问题呢。用word用那些字也用宋体做三行打印测试,word也是那个效果。
至此基本断定是宋体绘制时候前面空格随着字符串长度变大拉宽,真是奇葩问题各种有。
word效果
不变的还是排查问题的思路和方式,排杂和缩小范围。
20220301 zlz