Also ich hab die Funktion bei mir auch erfolgreich eingebaut doch da mit mehreren Druckern gearbeitet wird müsste eine Druckerauswahl her. Hab hier im Forum auch nen Beispielcode gefunden. Aber mir fehlt noch der Ansatz für eine Implementierung.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender:TObject);
var
I, Start, Stop: Integer;
begin
PrintDialog1.Options := [poPageNums, poSelection];
PrintDialog1.FromPage := 1;
PrintDialog1.MinPage := 1;
PrintDialog1.ToPage := PageControl1.PageCount;
PrintDialog1.MaxPage := PageControl1.PageCount;
if PrintDialog1.Execute
then
begin
{ Ausgewählten Druckbereich ermitteln }
with PrintDialog1
do
begin
if PrintRange = prAllPages
then
begin
Start := MinPage - 1;
Stop := MaxPage - 1;
end
else if PrintRange = prSelection
then
begin
Start := PageControl1.ActivePage.PageIndex;
Stop := Start;
end
else { PrintRange = prPageNums }
begin
Start := FromPage - 1;
Stop := ToPage - 1;
end;
end;
{ Jetzt die Seiten drucken }
with Printer
do
begin
BeginDoc;
for I := Start
to Stop
do
begin
PageControl1.Pages[I].PaintTo(
Handle, 10, 10);
if I <> Stop
then
NewPage;
end;
EndDoc;
end;
end;
end;