印刷(C++)

提供: RAD Studio
移動先: 案内検索

VCL/RTL の利用(C++) への移動


インストール済みの使用可能なプリンタのリストを取得するには、Printers プロパティを使用します。クラス TPrinter のインスタンスでは TCanvas(フォームの TCanvas と同一)を使用します。つまり、フォームに描画できるものなら何でも印刷できるということです。画像を印刷するには、BeginDoc メソッドを呼び出したあと、印刷対象となるあらゆるキャンバス グラフィックス(TextOut メソッドによるテキスト出力を含む)の処理を行い、最後に EndDoc メソッドを呼び出してジョブをプリンタに送信します。

以下の例では、フォーム上のボタンとメモを使用します。ユーザーがボタンをクリックすると、メモの内容が、ページの周囲に幅 200 ピクセルの枠線を付けて印刷されます。この例を正常に実行するには、ユニット ファイルで <Printers.hpp> をインクルードします。

 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();
 }