Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
Delphi 2007 Architect
|
AW: Drucken auf Adobe Acrobat X
4. Sep 2014, 14:16
Den Code habe ich runtergeladen um erstmal zu verstehen wie das drucken überhaupt geht. Das ist doch ein bissl anders als früher bei DOS und einem 7 Nadeldrucker
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var zeile, x, y: integer;
breite, hoehe, randlinks, randoben: integer;
sl :TStringList;
begin
sl:=TStringlist.Create;
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
sl.add('sdjskd skdj');
if PrintDialog1.Execute then begin
Printer.BeginDoc; //Druckjob beginnen
SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm
//Schrift-Einstellungen:
Printer.Canvas.Font.Name:='Courier New';
Printer.Canvas.Brush.Color:=clWhite;
Printer.Canvas.Font.Height:=50; //5 mm
//Blattgöße in 1/10 mm ermitteln:
breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
// randlinks:=250; //2,5 cm
// randoben:=250; //2,5 cm
randlinks:=0; //2,5 cm
randoben:=0; //2,5 cm
x:=randlinks;
y:=randoben*-1;
for zeile:=0 to sl.Count-1 do begin
if -y>(hoehe-2*randoben) then begin
y:=randoben*-1;
Printer.NewPage;
end;
if y=-randoben then begin
Printer.Canvas.Font.Style:=[fsbold];
Printer.Canvas.TextOut(x, y, 'Seite '+IntToStr(Printer.PageNumber));
Printer.Canvas.Font.Style:=[];
y:=y-Printer.Canvas.TextHeight(sl[zeile]);
end;
Printer.Canvas.TextOut(x, y, sl[zeile]);
y:=y-Printer.Canvas.TextHeight(sl[zeile]);
end;
Printer.EndDoc;
end;
sl.Free;
end;
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
|
|
Zitat
|