我在win2000上编了一段程序,在win2000中打印,文字都在表格里,win98则不行。
程序简单如下:
pointx:=trunc(getdevicecaps(printer.handle,logpixelsx)/2.54*2);
pointy:=trunc(getdevicecaps(printer.handle,logpixelsy)/2.54*2);
printer.orientation:=polandscape;
printer.canvas.font.name:='宋体';
printer.canvas.font.size:=10;
printwidth:=printer.canvas.textwidth('是');
printstep:=printer.canvas.textheight('是')*2;
x:=pointx-3*printwidth;
y:=pointy; printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑 序号');
如表格有两栏,98中序号则跑到第一栏去了,即:建筑 序号
不只怎么解决,请帮忙。很焦急。
程序简单如下:
pointx:=trunc(getdevicecaps(printer.handle,logpixelsx)/2.54*2);
pointy:=trunc(getdevicecaps(printer.handle,logpixelsy)/2.54*2);
printer.orientation:=polandscape;
printer.canvas.font.name:='宋体';
printer.canvas.font.size:=10;
printwidth:=printer.canvas.textwidth('是');
printstep:=printer.canvas.textheight('是')*2;
x:=pointx-3*printwidth;
y:=pointy; printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑 序号');
如表格有两栏,98中序号则跑到第一栏去了,即:建筑 序号
不只怎么解决,请帮忙。很焦急。
改用这个函数试试
'建筑 序号'这里设置成两个TextOut试试
'建筑 序号'这里设置成两个TextOut试试
如:
printer.Canvas.TextOut(x+27*printwidth,y-2*printstep,'建筑');
printer.Canvas.TextOut(x+27*printwidth+固定值,y-2*printstep,'序号');
实在是搞不定,不知道是什么原因,
于是我的软件运行环境,要求在WIN2000下也就没有问题了,
楼主也可以这样做的~~