日期:2014-05-19  浏览次数:20501 次

|M| 关于g.DrawString 的问题
本我生成的报表图片上本来有一段文字
制单日期:2007-04-18   金额:1200.00   制单人:多多  

首先说明一下上面的那段文字我是用
g.DrawString这样写进去的

然后现在项目经理有新的要求要我很头疼
他的要求是
制单日期:2007-04-18   金额:1200.00   制单人:多多  
这里面的“2007-04-18”   和“1200.00”   和“多多   ”
要求为粗体和加下划线
开始感觉很简单做做起来就不行了
本来我的相法是
g.DrawString(制单日期:)
g.DrawString(2007-04-18   )
g.DrawString(金额:)
g.DrawString(1200.00   )
g.DrawString(制单人:)
g.DrawString(多多   )
然后他们的位置用xy来定
但这样的话没有办法定他们的xy   因为不知道传进来的字符的长度
就算是用程序来算他的长度的话要是有一编文章都有这样的话那就不得了了

像这样的要求大家怎么做
谢谢



------解决方案--------------------
这里的长度基本上是可以确定的. 日期,金额可放大一点.15位数字的宽度. 制卡人也不过三四位的宽度.
------解决方案--------------------
每个位置文字 根据font size 来取像素
然后计算每行的宽度 高度.

如果你的文章含图片
那么还的计算图片的高低.

高度为 行的累加 宽度应该是行宽度最大的那行.