以mm为单位设置行高比较简单:
行高(磅)=α×mm×72/25.4 α 修正值=计算值/实际值
由于打印机有误差可以通过安计算值打印后测量实际值加以修正。
列宽相对要复杂些:
当屏幕(PDI)不同时一个字符代表的磅数不同,其规律是:1个字符宽≠2个字符宽/2,但2个字符宽-1个字符宽的差是常数,也就是说当宽>1个字符时每增加一个字符其增量相同。
在mm与字符间转换需用VBA,让它自动检查。
a=Columns(1).ColumnWidth
Columns(1).ColumnWidth = 1
c1=Columns(1).Width
Columns(1).ColumnWidth = 2
c2=Columns(1).Width
Columns(1).ColumnWidth =a
c=c2-c1
if mm>=c1*25.4/72 then
k=mm*72/25.4/c1
else
k=(mm*72/25.4-c1)/c+1
end if
列宽k可以不测试实际值(我通过多台打印机测试基本无误差)。
为避免每次测试可用一个专用工作表纪录下打印机名、修正值α,下次用时调用之。
其准确性为一个像素值。