首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于打印边距的奇怪有关问题

2012-01-30 
求助:关于打印边距的奇怪问题在c#中打印时,发现如果将左边距和右边距的值设成一样的,再在左边距的位置画条

求助:关于打印边距的奇怪问题
在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;

热点排行