VCL アプリケーションでの印刷

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

キャンバス オブジェクトのプロパティの使用 への移動


Vcl.Printers.TPrinter オブジェクトは、Windows プリンタの詳細をカプセル化します。

インストールされ利用可能なプリンタのリストを取得するには、Printers プロパティを使用します。 クラス TPrinter のインスタンスは、TCanvas を使用します(フォームの TCanvas と同じ)。 これはつまり、フォーム上に描画されるあらゆるものは、同様に印刷できるということになります。 イメージを印刷するには、印刷したいキャンバス グラフィックと共に(TextOut メソッドを介したテキストも含む) BeginDoc メソッドを呼び出し、EndDoc メソッドを呼び出して、プリンタにジョブを送ります。

この例では、フォーム上のボタンとメモを使用します。 ユーザーがボタンをクリックすると、メモの内容が、ページの周囲に幅 200 ピクセルの枠線を付けて印刷されます。

この例を正常に実行するには、Printersuses 句に追加する必要があります。

 procedure TForm1.Button1Click(Sender: TObject);
 var
 r: TRect;
 i: Integer;
 begin
   with Printer do
   begin
     r := Rect(200,200,(Pagewidth - 200),(PageHeight - 200));
     BeginDoc;
     Canvas.Brush.Style := bsClear;
     for i := 0 to Memo1.Lines.Count do
       Canvas.TextOut(200,200 + (i * Canvas.TextHeight(Memo1.Lines.Strings[i])), Memo1.Lines.Strings[i]);
     Canvas.Brush.Color := clBlack;
     Canvas.FrameRect(r);
     EndDoc;
   end;
 end;

次に例では、フォーム上のボタンとメモを使用します。 ユーザーがボタンをクリックすると、メモの内容が、ページの周囲に幅 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();
}

関連項目