求助:关于打印边距的奇怪问题
在c#中打印时,发现如果将左边距和右边距的值设成一样的,再在左边距的位置画条竖线,再在右边距的位置画条竖线,用打印机打出来会发现两条竖线离两边的距离不一样,用尺子量一下,大约左边比右边多25,但用Microsoft Office Document Image Writer打印出来左右距离是一样的。这是为什么呢?
------解决方案--------------------因为打印机本身有一个边距(不可打印到的范围),也就是打印机针头的起始点,这也就是左边比右边要宽一点的原因,用api可以得到
------解决方案--------------------int offx = WINAPI.GetDeviceCaps(dc, WINAPI.PHYSICALOFFSETX);
int offy = WINAPI.GetDeviceCaps(dc, WINAPI.PHYSICALOFFSETY);
int resx = WINAPI.GetDeviceCaps(dc, WINAPI.HORZRES);
int resy = WINAPI.GetDeviceCaps(dc, WINAPI.VERTRES);
float hsz = Convert.ToSingle(WINAPI.GetDeviceCaps(dc, WINAPI.HORZSIZE)) / 25.4f;
float vsz = Convert.ToSingle(WINAPI.GetDeviceCaps(dc,WINAPI.VERTSIZE)) / 25.4f;
float ppix = resx/hsz;
float ppiy = resy/vsz;
int leftMargin = offx;
int topMargin = offy;