印刷(C++)
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();
}