不太好办,请看看TPRINTER的帮助吧
解决方案 »
- 女DELPHI码农何去何从啊 ,求大神
- Delphi 关于分辨率的问题
- 怎么禁止其它程序获取我程序上的控件信息?
- XML父节点增加属性,为什么子节点也会自动添加相同的属性?
- excel的问题?(真的很急)
- 怪碼還原:%E8%B3%87%E6%96%99%E4%BD%9C%E6%88%90%E...v1.0.xls
- 暂时不使用Delphi一段时间!大逆不道的家伙!开始散分
- 请问一个关于生成无边框窗体的问题?
- 怎样将TDataModule结果保存在文件中?
- 本人有delphi优秀控件近千个,且有相关说明资料,可惜是书,不知道大家对此有没有兴趣
- 请教高手:出现“list index out of bounds”编译问题,可能是由哪些原因造成的?急!!
- 怎样将位图的颜色转化为16色???
var
Items: TStringList;
tt :string;
i : integer;
begin
printer.getprinter(adevice,adriver,aport,devicehandle);
devmode:=globallock(devicehandle);
with devmode^ do
begin
dmfields:=dmfields;
dmpapersize :=DMPAPER_B4;
dmfields:=dmfields;
dmorientation :=dmorient_portrait;
{ dmfields:=dmfields;
dmorientation :=dmorient_landscape;
dmfields:=dmfields;
dmpapersize :=DMPAPER_B5;
dmfields:=dmPaperLength;
dmPaperLength :=1820;
dmfields:=dmPaperwidth;
dmPaperwidth :=2570;
}
end;
marginleft :=8;
fieldwd[0]:=2;
fieldwd[1]:=12;
fieldwd[2]:=6;
fieldwd[3]:=5;
fieldwd[4]:=6;
fieldwd[5]:=5;
fieldwd[6]:=5;
fieldwd[7]:=6;
fieldwd[8]:=5;
fieldwd[9]:=6;
fieldwd[10]:=6;
fieldwd[11]:=6;
fieldwd[12]:=6;
fieldwd[13]:=6;
Items := TStringList.Create;
// Determine pixels per inch horizontally
PixelsInInchx := GetDeviceCaps(Printer.Handle, LOGPIXELSX);
TenthsOfInchPixelsY := GetDeviceCaps(Printer.Handle,LOGPIXELSY) div 10;
AmountPrinted := 0;
Printer.BeginDoc;
LineHeight := Printer.Canvas.TextHeight('X')+TenthsOfInchPixelsY;
PrintHeader;
PrintColumnNames;
printtotal;
recordprinted :=1;
query_1.First;
while (not query_1.Eof) do
begin
with Items do
begin
// AddObject(tblClients.FieldByName('ZIP').AsString,
// pointer(StrToInt(edtZip.Text)));
AddObject(query_1.Fields.Fields[0].AsString,pointer(fieldwd[0]));
AddObject(query_1.Fields.Fields[1].AsString,pointer(fieldwd[1]));
AddObject(query_1.Fields.Fields[2].AsString,pointer(fieldwd[2]));
for i := 3 to 13 do
begin
if query_1.Fields.Fields[i].asfloat <> 0 then
tt:=formatfloat('0.00',query_1.Fields.Fields[i].asfloat)
else
tt:=' ';
AddObject(tt,pointer(fieldwd[i]));
end;
{ AddObject(query_1.Fields.Fields[3].AsString,pointer(fieldwd[3]));
.
.
AddObject(query_1.Fields.Fields[13].AsString,pointer(fieldwd[13]));
} end;
PrintLine(Items);
recordprinted :=recordprinted +1;
if recordprinted >= 16 then
// if AmountPrinted + LineHeight > Printer.PageHeight then
begin
AmountPrinted := 0;
Printer.NewPage;
PrintHeader;
PrintColumnNames;
recordprinted :=1;
end;
Items.Clear;
query_1.Next;
end;
Printer.EndDoc;
Items.Free;
endsSysdir和sWinDir实际上分别指window的system目录