.NET TIPS

複数の部数を印刷するには?[C#、VB]

デジタルアドバンテージ 一色 政彦
2007/07/26

 「TIPS:Windowsアプリケーションで印刷を行うには?」や「TIPS:複数ページの印刷を行うには?」では、Windowsアプリケーションなどで印刷を行う方法を紹介した。ただし、これらの印刷方法では1部数しか印刷されない仕様となっていた。それでは、1回の印刷処理で、複数の部数を印刷するにはどうすればよいのか。

複数部数の印刷処理

 複数ページを印刷するには、PrintDocumentコンポーネント(System.Drawing.Printing名前空間)のPrinterSettings.Copiesプロパティ*1に、希望の部数を(short型/Short型の値で)設定すればよい。

*1 PrinterSettings.Copiesプロパティは、厳密には、PrinterSettingsプロパティで取得したPrinterSettingsクラス(System.Drawing.Printing名前空間)のオブジェクトのCopiesプロパティである。

 次のサンプル・コードでは、実際にPrintDocumentコンポーネント(以下の例では「printDocument1」)のPrinterSettings.Copiesプロパティに、希望の部数(以下の例では「3」)を設定している。

private void button1_Click(object sender, System.EventArgs e)
{
  // 印刷部数を指定する
  printDocument1.PrinterSettings.Copies = 3;

  // 印刷処理を実行
  printDocument1.Print();
}

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
  // 印刷ページの描画を行う
  e.Graphics.DrawString("サンプル印刷",
    new Font("MS 明朝", 32), Brushes.Black,
    e.MarginBounds.Left, e.MarginBounds.Top,
    new StringFormat());
}
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  ' 印刷部数を指定する
  printDocument1.PrinterSettings.Copies = 3

  ' 印刷処理を実行
  PrintDocument1.Print()
End Sub

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
  ' 印刷ページの描画を行う
  e.Graphics.DrawString("サンプル印刷", _
    New Font("MS 明朝", 32), Brushes.Black, _
    e.MarginBounds.Left, e.MarginBounds.Top, _
    New StringFormat)
End Sub
複数ページを印刷するサンプル・プログラム(上:C#、下:VB)

 サンプル・プログラムの内容についてはコード中のコメントを読めばご理解いただけると思うので、詳しい説明は割愛する。なお前掲のTIPSとほぼ同じような実装内容となっている。

 上記のコードを実行すると、ドキュメントを3部数、印刷する。End of Article

カテゴリ:Windowsフォーム 処理対象:印刷
カテゴリ:クラス・ライブラリ 処理対象:印刷
使用ライブラリ:PrintDocumentクラス(System.Drawing.Printing名前空間)
関連TIPS:Windowsアプリケーションで印刷を行うには?
関連TIPS:複数ページの印刷を行うには?

この記事と関連性の高い別の.NET TIPS
複数ページの印刷を行うには?
印刷プレビュー(ダイアログ形式)を表示するには?
Windowsアプリケーションで印刷を行うには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH