Drucken (C++)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Verwenden der VCL/RTL (C++)

Mit der Eigenschaft Printers können Sie eine Liste der installierten und verfügbaren Drucker abrufen. Eine Instanz der Klasse TPrinter verwendet TCanvas (das identisch ist mit dem TCanvas des Formulars), sodass alles, was auf einem Formular gezeichnet wird, auch gedruckt werden kann. Rufen Sie zum Drucken eines Bildes die Methode BeginDoc gefolgt von der gewünschten Canvas-Grafik auf, die Sie drucken möchten (einschließlich von Text mit der Methode TextOut), und senden Sie den Auftrag an den Drucker, indem Sie die Methode EndDoc aufrufen.

Beispiel

Im folgenden Beispiel wird ein Formular mit einer Schaltfläche und einer Memokomponente verwendet. Wenn der Benutzer auf die Schaltfläche klickt, wird der Inhalt des Memos mit einem 200-Pixel-Rahmen um die Seite gedruckt. Damit dieses Beispiel ausgeführt werden kann, müssen Sie <Printers.hpp> in Ihre Unit-Datei einfügen.

void __fastcall TForm1::Button1Click(TObject *Sender) {
 	TPrinter *Prntr = Printer();
 	TRect r = Rect(200, 200, Prntr->PageWidth - 200, Prntr->PageHeight - 200);
 	Prntr->BeginDoc();
 	for (int i = 0; i < Memo1->Lines->Count; i++)
 		Prntr->Canvas->TextOut(200,
 			200 + (i * Prntr->Canvas->TextHeight(Memo1->Lines->Strings[i])),
 			Memo1->Lines->Strings[i]);
 	Prntr->Canvas->Brush->Color = clBlack;
 	Prntr->Canvas->FrameRect(r);
 	Prntr->EndDoc();
 }