スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[C#] 印刷機能について

C#の印刷機能について、メモします。
特にリファレンスも見ずGoogle検索に任せましたので、間違ってたらすみません。 
ご指摘ください。

[手順]
1.印刷物を用意する。(PrintDocument)
2.印刷ダイアログを作成する。(PrintDialog)
です。

以下がイメージ図です。
ここで言う"印刷物"とは、印刷したい文字、画像等を指します。


print_cs


[コード 内容]
1.印刷物を用意します。
   印刷物は、PrintDocumentを使用します。
        System.Drawing.Printing
.PrintDocument
        印刷する用紙。用紙サイズの設定、印刷物書き込みを行う。


   PrintDocumentの印刷物の作成は、PrintDocumentのPrintPageイベントを使用します。
       System.Drawing.Printing.PrintDocument.PrintPage
          イベント内部で、印刷する内容を作成します。

2.印刷ダイアログを開きます。

   印刷物は、
PrintDialogを使用します。
      System.Windows.Forms.PrintDialog
 

[注意!!]
PrintDialogは、64bit環境で、ただ単にShowDialog()を読んだだけでは、開くことができません。
PrintDialog printDialog1 = new PrintDialog();
printDialog1.UseEXDialog = true;
よくわかりませんが、コード内で記述しているとどうしても動きませんでしたが、
デザイナーで追加すると、動きます。
違いは、UseEXDialog だけでした。
すごく後付感が漂うクラスです(--;)""
調べてみると、ここに記事がありました。

以下にサンプルコードを書いておきます。





private void Button1_Click(object sender, EventArgs e) {
// 印刷物の設定
System.Drawing.Printing.PrintDocument pDoc =
new System.Drawing.Printing.PrintDocument();
pDoc.PrintPage +=
new System.Drawing.Printing.PrintPageEventHandler(pDoc_PrintPage);

// プリントダイアログの設定
using (PrintDialog printDialog = new PrintDialog()) {
printDialog.PrinterSettings = new System.Drawing.Printing.PrinterSettings();
printDialog.Document = pDoc;
printDialog.UseEXDialog = true;

if (printDialog.ShowDialog() != DialogResult.OK)
return;

pDoc.Print();
}
}

private void pDoc_PrintPage(object sender,
System.Drawing.Printing.PrintPageEventArgs e) {
e.Graphics.DrawString("test", new Font("Arial",12), Brushes.Red, 10, 10);
}








終わり。

テーマ : プログラミング
ジャンル : コンピュータ

プロフィール

名前 :ss_9
紹介 :
20代はエンジニア、30代はプロ、40代は管理、50代は人脈。

Twitterボタン

最新記事
カテゴリ
AD
月別アーカイブ
RSSリンクの表示
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。