英語で読む

次の方法で共有


PrintDocument クラス

定義

Windows フォーム アプリケーションからの印刷時にプリンターに出力を送信する再利用可能なオブジェクトを定義します。

public class PrintDocument : System.ComponentModel.Component
継承

次のコード例では、C:\My Documents\MyFile.txt という名前のファイルを既定のプリンターに出力します。 この例を実行するには、新しいWindows フォーム プロジェクトを作成し、サンプル コードをフォームに貼り付け、ファイルの内容を置き換えます。 C# の場合は、Form1 を削除する必要があります。Designer.cs ファイル。 また、印刷するファイルのパスを変更します。

注意

この例では、各行がページ幅内に収まる必要があります。

using System;
using System.IO;
using System.Drawing;
using System.Drawing.Printing;
using System.Windows.Forms;

public partial class Form1 : System.Windows.Forms.Form
{
    private System.ComponentModel.Container components;
    private System.Windows.Forms.Button printButton;
    private Font printFont;
    private StreamReader streamToPrint;

    public Form1()
    {
        // The Windows Forms Designer requires the following call.
        InitializeComponent();
    }

    // The Click event is raised when the user clicks the Print button.
    private void printButton_Click(object sender, EventArgs e)
    {
        try
        {
            streamToPrint = new StreamReader
               ("C:\\My Documents\\MyFile.txt");
            try
            {
                printFont = new Font("Arial", 10);
                PrintDocument pd = new PrintDocument();
                pd.PrintPage += new PrintPageEventHandler
                   (this.pd_PrintPage);
                pd.Print();
            }
            finally
            {
                streamToPrint.Close();
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }

    // The PrintPage event is raised for each page to be printed.
    private void pd_PrintPage(object sender, PrintPageEventArgs ev)
    {
        float linesPerPage = 0;
        float yPos = 0;
        int count = 0;
        float leftMargin = ev.MarginBounds.Left;
        float topMargin = ev.MarginBounds.Top;
        string line = null;

        // Calculate the number of lines per page.
        linesPerPage = ev.MarginBounds.Height /
           printFont.GetHeight(ev.Graphics);

        // Print each line of the file.
        while (count < linesPerPage &&
           ((line = streamToPrint.ReadLine()) != null))
        {
            yPos = topMargin + (count *
               printFont.GetHeight(ev.Graphics));
            ev.Graphics.DrawString(line, printFont, Brushes.Black,
               leftMargin, yPos, new StringFormat());
            count++;
        }

        // If more lines exist, print another page.
        if (line != null)
            ev.HasMorePages = true;
        else
            ev.HasMorePages = false;
    }

    // The Windows Forms Designer requires the following procedure.
    private void InitializeComponent()
    {
        this.components = new System.ComponentModel.Container();
        this.printButton = new System.Windows.Forms.Button();

        this.ClientSize = new System.Drawing.Size(504, 381);
        this.Text = "Print Example";

        printButton.ImageAlign =
           System.Drawing.ContentAlignment.MiddleLeft;
        printButton.Location = new System.Drawing.Point(32, 110);
        printButton.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
        printButton.TabIndex = 0;
        printButton.Text = "Print the file.";
        printButton.Size = new System.Drawing.Size(136, 40);
        printButton.Click += new System.EventHandler(printButton_Click);

        this.Controls.Add(printButton);
    }
}

注釈

通常は、 クラスのPrintDocumentインスタンスを作成し、 や PrinterSettingsなどのプロパティをDocumentName設定し、 メソッドをPrint呼び出して印刷プロセスを開始します。 の プロパティを PrintPage 使用 GraphicsGraphics して、出力を指定するイベントを処理します PrintPageEventArgs

Windows フォーム アプリケーションからの印刷の詳細については、「Windows フォーム印刷サポート」を参照してください。 Windows Presentation Foundation アプリケーションから印刷する場合は、 名前空間をSystem.Printing参照してください。

注意

.NET 6 以降のバージョンでは、この種類を含む System.Drawing.Common パッケージは Windows オペレーティング システムでのみサポートされています。 クロスプラットフォーム アプリでこの型を使用すると、コンパイル時の警告と実行時例外が発生します。 詳細については、「 Windows でのみサポートされる System.Drawing.Common」を参照してください。

コンストラクター

PrintDocument()

PrintDocument クラスの新しいインスタンスを初期化します。

プロパティ

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。

(継承元 Component)
Container

IContainer を含む Component を取得します。

(継承元 Component)
DefaultPageSettings

印刷するすべてのページの既定値として使用されるページ設定を取得または設定します。

DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。

(継承元 Component)
DocumentName

ドキュメントの印刷中に、印刷ステータス ダイアログ ボックスやプリンター キューなどで表示するドキュメントの名前を取得または設定します。

Events

Component に結び付けられているイベント ハンドラーのリストを取得します。

(継承元 Component)
OriginAtMargins

ページに関連付けられているグラフィック オブジェクトの位置が、ユーザー指定の余白の内側にあるか、ページの印刷可能領域の左上隅にあるかを示す値を取得または設定します。

PrintController

印刷プロセスを制御するプリント コントローラーを取得または設定します。

PrinterSettings

ドキュメントを印刷するプリンターを取得または設定します。

Site

ComponentISite を取得または設定します。

(継承元 Component)

メソッド

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。

(継承元 MarshalByRefObject)
Dispose()

Component によって使用されているすべてのリソースを解放します。

(継承元 Component)
Dispose(Boolean)

Component によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。

(継承元 Component)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
古い.

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
OnBeginPrint(PrintEventArgs)

BeginPrint イベントを発生させます。 Print() メソッドが呼び出された後、ドキュメントの最初のページが印刷される前に呼び出されます。

OnEndPrint(PrintEventArgs)

EndPrint イベントを発生させます。 ドキュメントの最後のページが印刷されたときに呼び出されます。

OnPrintPage(PrintPageEventArgs)

PrintPage イベントを発生させます。 ページの印刷前に呼び出されます。

OnQueryPageSettings(QueryPageSettingsEventArgs)

QueryPageSettings イベントを発生させます。 各 PrintPage イベントの直前に呼び出されます。

Print()

ドキュメントの印刷プロセスを開始します。

ToString()

印刷ドキュメントに関する情報を文字列形式で提供します。

イベント

BeginPrint

Print() メソッドが呼び出されたとき (ドキュメントの最初のページが印刷される前) に発生します。

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。

(継承元 Component)
EndPrint

ドキュメントの最後のページが印刷されたときに発生します。

PrintPage

現在のページに印刷する出力が必要なときに発生します。

QueryPageSettings

PrintPage イベントの直前に発生します。

適用対象

製品 バージョン
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

こちらもご覧ください