PrintDocument で印刷開始の初期設定する方法

  PrintDocument で印刷開始の初期設定するには、PrintDocumentOnBeginPrint メソッドをオーバーライドして、このメソッド内に初期設定内容を記述します。
【使い方】

 印刷開始時に、印刷開始・終了ページ指定に対応して、印刷の対象となるレコード範囲を設定する例。
// this.PageCount は、印刷ページ数
// this.CurrentPage は、現在印刷中のページ番号
// this.CurrentRowIndex は、現在印刷中のレコード番号
// this.LastRowIndex は、最終印刷レコード番号
// this.PageRowCount は、1ページに印刷可能なレコード数


/// <summary>
/// 印刷開始時に呼び出されるイベントメソッド
/// 印刷開始ページ&開始・終了レコード番号を設定
/// </summary>
/// <param name="e">印刷用イベントデータ。</param>
protected override void OnBeginPrint(System.Drawing.Printing.PrintEventArgs e)
{
    //印刷ページ数を初期化
    this.PageCount = 0;

    //カレントページ数を初期化(印刷処理時に1加算されてスタートする)
    this.CurrentPage = 0;

    //開始ページ指定がある場合は、そのページ-1を初期値として設定(印刷処理時に1加算されてスタートする)
    if ( this.DefaultPageSettings.PrinterSettings.FromPage > 0 )
    {
        // カレントページを設定する
        this.CurrentPage = this.DefaultPageSettings.PrinterSettings.FromPage - 1;
    }

    // カレントレコード番号を開始ページで初期化する
    this.CurrentRowIndex = this.PageRowCount * PrintParam.CurrentPage;

    //最終レコード番号を初期化
    this.LastRowIndex = this.RecordCount;

    //最終ページが指定されている場合、最終ページまでのレコード数を設定
    if ( this.DefaultPageSettings.PrinterSettings.ToPage > 0 )
    {
        // 最終レコード番号を最終ページで設定する
        this.LastRowIndex = this.PageRowCount * this.DefaultPageSettings.PrinterSettings.ToPage;
    }
}
【注意】
戻る