with printer do
try
Title := '打印系统';
//得到有效的打印位置
leftedge := getdevicecaps(printer.handle, PHYSICALOFFSETX);
topedge := getdevicecaps(printer.handle, PHYSICALOFFSETY);
page := 0;
begindoc;
Canvas.Font.Name := '宋体';
Canvas.Font.Size := 10;
with stringgrid1 do
begin
for rowtemp := 1 to rowcount - 4 do
begin
htemp := ((rowtemp - 1) mod 3) * 10.1;
if page = 0 then
begin
printer.canvas.textout(GetEnvelopeSize(13.7, 2.4 + htemp).x - leftedge, GetEnvelopeSize(13.5, 2.2 + htemp).y - topedge, copy(cells[5, rowtemp], 1, 4));
printer.canvas.textout(GetEnvelopeSize(15.3, 2.4 + htemp).x - leftedge, GetEnvelopeSize(15, 2.2 + htemp).y - topedge, copy(cells[5, rowtemp], 7, 2));
printer.canvas.textout(GetEnvelopeSize(16.3, 2.4 + htemp).x - leftedge, GetEnvelopeSize(16, 2.2 + htemp).y - topedge, copy(cells[5, rowtemp], 11, 2));
printer.canvas.textout(GetEnvelopeSize(4.0, 3.1 + htemp).x - leftedge, GetEnvelopeSize(3.5, 2.9 + htemp).y - topedge, cells[0, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(4.0, 3.8 + htemp).x - leftedge, GetEnvelopeSize(3.5, 3.6 + htemp).y - topedge, cells[1, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(11, 3.8 + htemp).x - leftedge, GetEnvelopeSize(10.5, 3.6 + htemp).y - topedge, cells[2, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(5.5, 4.6 + htemp).x - leftedge, GetEnvelopeSize(5, 4.4 + htemp).y - topedge, smalltobig(strtofloat(cells[4, rowtemp])));
printer.canvas.textout(GetEnvelopeSize(13.5, 4.6 + htemp).x - leftedge, GetEnvelopeSize(13.5, 4.4 + htemp).y - topedge, cells[4, rowtemp]);
end
else
begin
printer.canvas.textout(GetEnvelopeSize(13.7, 3.1 + htemp).x - leftedge, GetEnvelopeSize(13.5, 3.1 + htemp).y - topedge, copy(cells[5, rowtemp], 1, 4));
printer.canvas.textout(GetEnvelopeSize(15.3, 3.1 + htemp).x - leftedge, GetEnvelopeSize(15, 3.1 + htemp).y - topedge, copy(cells[5, rowtemp], 7, 2));
printer.canvas.textout(GetEnvelopeSize(16.3, 3.1 + htemp).x - leftedge, GetEnvelopeSize(16, 3.1 + htemp).y - topedge, copy(cells[5, rowtemp], 11, 2));
printer.canvas.textout(GetEnvelopeSize(4.0, 3.8 + htemp).x - leftedge, GetEnvelopeSize(3.5, 3.8 + htemp).y - topedge, cells[0, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(4.0, 4.5 + htemp).x - leftedge, GetEnvelopeSize(3.5, 4.5 + htemp).y - topedge, cells[1, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(11, 4.5 + htemp).x - leftedge, GetEnvelopeSize(10.5, 4.5 + htemp).y - topedge, cells[2, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(5.5, 5.3 + htemp).x - leftedge, GetEnvelopeSize(5, 5.3 + htemp).y - topedge, smalltobig(strtofloat(cells[4, rowtemp])));
printer.canvas.textout(GetEnvelopeSize(13.5, 5.3 + htemp).x - leftedge, GetEnvelopeSize(13.5, 5.3 + htemp).y - topedge, cells[4, rowtemp]);
end;
if ((rowtemp - 1) mod 3) = 2 then
begin
newpage;
page := page + 1;
end;
end;
end;
finally
EndDoc;
end;
try
Title := '打印系统';
//得到有效的打印位置
leftedge := getdevicecaps(printer.handle, PHYSICALOFFSETX);
topedge := getdevicecaps(printer.handle, PHYSICALOFFSETY);
page := 0;
begindoc;
Canvas.Font.Name := '宋体';
Canvas.Font.Size := 10;
with stringgrid1 do
begin
for rowtemp := 1 to rowcount - 4 do
begin
htemp := ((rowtemp - 1) mod 3) * 10.1;
if page = 0 then
begin
printer.canvas.textout(GetEnvelopeSize(13.7, 2.4 + htemp).x - leftedge, GetEnvelopeSize(13.5, 2.2 + htemp).y - topedge, copy(cells[5, rowtemp], 1, 4));
printer.canvas.textout(GetEnvelopeSize(15.3, 2.4 + htemp).x - leftedge, GetEnvelopeSize(15, 2.2 + htemp).y - topedge, copy(cells[5, rowtemp], 7, 2));
printer.canvas.textout(GetEnvelopeSize(16.3, 2.4 + htemp).x - leftedge, GetEnvelopeSize(16, 2.2 + htemp).y - topedge, copy(cells[5, rowtemp], 11, 2));
printer.canvas.textout(GetEnvelopeSize(4.0, 3.1 + htemp).x - leftedge, GetEnvelopeSize(3.5, 2.9 + htemp).y - topedge, cells[0, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(4.0, 3.8 + htemp).x - leftedge, GetEnvelopeSize(3.5, 3.6 + htemp).y - topedge, cells[1, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(11, 3.8 + htemp).x - leftedge, GetEnvelopeSize(10.5, 3.6 + htemp).y - topedge, cells[2, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(5.5, 4.6 + htemp).x - leftedge, GetEnvelopeSize(5, 4.4 + htemp).y - topedge, smalltobig(strtofloat(cells[4, rowtemp])));
printer.canvas.textout(GetEnvelopeSize(13.5, 4.6 + htemp).x - leftedge, GetEnvelopeSize(13.5, 4.4 + htemp).y - topedge, cells[4, rowtemp]);
end
else
begin
printer.canvas.textout(GetEnvelopeSize(13.7, 3.1 + htemp).x - leftedge, GetEnvelopeSize(13.5, 3.1 + htemp).y - topedge, copy(cells[5, rowtemp], 1, 4));
printer.canvas.textout(GetEnvelopeSize(15.3, 3.1 + htemp).x - leftedge, GetEnvelopeSize(15, 3.1 + htemp).y - topedge, copy(cells[5, rowtemp], 7, 2));
printer.canvas.textout(GetEnvelopeSize(16.3, 3.1 + htemp).x - leftedge, GetEnvelopeSize(16, 3.1 + htemp).y - topedge, copy(cells[5, rowtemp], 11, 2));
printer.canvas.textout(GetEnvelopeSize(4.0, 3.8 + htemp).x - leftedge, GetEnvelopeSize(3.5, 3.8 + htemp).y - topedge, cells[0, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(4.0, 4.5 + htemp).x - leftedge, GetEnvelopeSize(3.5, 4.5 + htemp).y - topedge, cells[1, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(11, 4.5 + htemp).x - leftedge, GetEnvelopeSize(10.5, 4.5 + htemp).y - topedge, cells[2, rowtemp]);
printer.canvas.textout(GetEnvelopeSize(5.5, 5.3 + htemp).x - leftedge, GetEnvelopeSize(5, 5.3 + htemp).y - topedge, smalltobig(strtofloat(cells[4, rowtemp])));
printer.canvas.textout(GetEnvelopeSize(13.5, 5.3 + htemp).x - leftedge, GetEnvelopeSize(13.5, 5.3 + htemp).y - topedge, cells[4, rowtemp]);
end;
if ((rowtemp - 1) mod 3) = 2 then
begin
newpage;
page := page + 1;
end;
end;
end;
finally
EndDoc;
end;
解决方案 »
- delphi求知:上下分支树结构的控件
- 求sql语句
- 枚举SQL服务器名称出错,怎么办?急。。。请大家帮帮我。
- 这个原因也会导致,"无法更新定位行.一些值在最后读取的时候已更改.",不知道大家知道么?? 怎么解决,大家出个点子.
- 【请教】键盘钩子问题,如何屏蔽CTRL+ALT+DEL、或ALT+F4等键
- TIDSMTP发邮件进度没显示
- 忍无可忍,考
- 怎么通过点击listview某一行后,将这一行的几个字段分别读到几个edit.text?
- 请教高手!50分等你拿!谢谢
- 关于一个小程序的价钱,刚才有的一个小活的问题,
- 请问OICQ是怎么判断对方的接收端口的?(关于UDP的编程)
- select top 3 songname from test order by songname 有错吗?
控件的top, left 就能控制每次打印位置了。 设置纸张,搞定了
还要注意打印纸的设置,打印机的设置, 多试验就能搞定!
这个我用过,刚开始老对不齐,尤其打印的多时,后来控制好了很好用的,完全没必要用print对象