.NETプログラムでC#を使ってWord文書を印刷する方法

現代の高速な業務環境において、オフィスタスクの自動化のニーズはますます高まっています。その中でも、アプリケーションから直接ドキュメントを印刷するというニーズはよく見られるものです。C#を選択するプログラマーにとって、このような機能を実現することは挑戦であると同時にチャンスでもあります。本記事では、C#の強力な機能と利用可能なサードパーティライブラリを活用して、Wordドキュメントの印刷機能をシームレスに統合する方法を探ります。これにより、開発者はアプリケーション内でこのニーズを簡単に実現し、業務効率を向上させ、作業プロセスを簡素化できます。
.NETプロジェクトで**C#を使ってWord文書を印刷する機能を実装**する方法：

- **[C# で Word ドキュメントを印刷する](#c-で-word-ドキュメントを印刷する)**
- **[C# で Word ドキュメントを静かに印刷する](#c-で-word-ドキュメントを静かに印刷する)**
- **[C# で Word ドキュメントを PDF に印刷する](#c-で-word-ドキュメントを-pdf-に印刷する)**
- **[C# でカスタムサイズの用紙に Word ドキュメントを印刷する](#c-でカスタムサイズの用紙に-word-ドキュメントを印刷する)**

この記事で使用されている方法は、[Spire.Doc for .NET](https://jp.e-iceblue.com/download/spire-doc-for-net.html)が必要です。NuGet：`PM> Install-Package Spire.Doc`。

[無料ライセンス申請](https://www.e-iceblue.com/TemLicense.html)

## C# で Word ドキュメントを印刷する
`PrintDocument` クラスを使用することで、プログラマーは特定のプリンターに Word ドキュメントを送信し、ページ範囲、印刷部数、両面印刷、用紙サイズなどの印刷設定を指定できます。Word ドキュメントを印刷するための手順は以下の通りです。
- `Document` オブジェクトを作成します。
- `Document.LoadFromFile()` メソッドを使用して Word ドキュメントを読み込みます。
- `Document.PrintDocument` プロパティを介して `PrintDocument` オブジェクトを取得します。
- `PrintDocument.PrinterSettings.PrinterName` プロパティでプリンター名を指定します。
- `PrintDocument.PrinterSettings.FromPage` および `ToPage` プロパティで印刷するページ範囲を指定します。
- `PrintDocument.PrinterSettings.Copies` プロパティで印刷部数を指定します。
- `PrintDocument.Print()` メソッドでドキュメントを印刷します。

**コード例**
```c#
using Spire.Doc;
using System.Drawing.Printing;

namespace PrintWordDocument
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントオブジェクトを作成
            Document doc = new Document();

            // Wordドキュメントをロード
            doc.LoadFromFile("Sample.docx");

            // PrintDocumentオブジェクトを取得
            PrintDocument printDoc = doc.PrintDocument;

            // プリンタ名を指定
            printDoc.PrinterSettings.PrinterName = "HP Color LaserJet MFP";

            // 印刷するページ範囲を指定
            printDoc.PrinterSettings.FromPage = 1;
            printDoc.PrinterSettings.ToPage = 10;

            // 印刷するコピー数を設定
            printDoc.PrinterSettings.Copies = 1;

            // ドキュメントを印刷
            printDoc.Print();
        }
    }
}
```

## C# で Word ドキュメントを静かに印刷する
静かな印刷（サイレントプリント）とは、印刷プロセスや印刷のステータスを表示しない印刷方法です。サイレント印刷を有効にするには、`PrintController` を `StandardPrintController` に設定します。詳細な手順は以下の通りです。
- `Document` オブジェクトを作成します。
- `Document.LoadFromFile()` メソッドを使用して Word ドキュメントを読み込みます。
- `Document.PrintDocument` プロパティを介して `PrintDocument` オブジェクトを取得します。
- `PrintDocument.PrinterSettings.PrinterName` プロパティでプリンター名を指定します。
- `PrintDocument.PrintController` プロパティで `PrintController` を `StandardPrintController` に設定します。
- `PrintDocument.Print()` メソッドでドキュメントを印刷します。

**コード例**
```c#
using Spire.Doc;
using System.Drawing.Printing;

namespace SilentlyPrintWord
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントオブジェクトを作成
            Document doc = new Document();

            // Wordドキュメントをロード
            doc.LoadFromFile("Sample.docx");

            // PrintDocumentオブジェクトを取得
            PrintDocument printDoc = doc.PrintDocument;

            // プリンタ名を指定
            printDoc.PrinterSettings.PrinterName = "HP Color LaserJet MFP";

            // 印刷コントローラーをStandardPrintControllerに指定
            printDoc.PrintController = new StandardPrintController();

            // ドキュメントを印刷
            printDoc.Print();
        }
    }
}
```

## C# で Word ドキュメントを PDF に印刷する
物理的なプリンターで Word ドキュメントを印刷するだけでなく、`Microsoft Print to PDF` や `Microsoft XPS Document Writer` などの仮想プリンターを使用してドキュメントを印刷することもできます。Word を PDF に印刷する手順は以下の通りです。
- `Document` オブジェクトを作成します。
- `Document.LoadFromFile()` メソッドを使用して Word ドキュメントを読み込みます。
- `Document.PrintDocument` プロパティを介して `PrintDocument` オブジェクトを取得します。
- `PrintDocument.PrinterSettings.PrinterName` プロパティで「`Microsoft Print to PDF`」を指定します。
- `PrintDocument.PrinterSettings.PrintFileName` プロパティで出力ファイルのパスと名前を指定します。
- `PrintDocument.Print()` メソッドでドキュメントを印刷します。

**コード例**
```c#
using Spire.Doc;
using System.Drawing.Printing;

namespace PrintWordToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントオブジェクトを作成
            Document doc = new Document();

            // Wordドキュメントをロード
            doc.LoadFromFile("Sample.docx");

            // PrintDocumentオブジェクトを取得
            PrintDocument printDoc = doc.PrintDocument;

            // ドキュメントをファイルに印刷
            printDoc.PrinterSettings.PrintToFile = true;

            // プリンタ名を指定
            printDoc.PrinterSettings.PrinterName = "Microsoft Print to PDF";

            // 出力ファイルのパスと名前を指定
            printDoc.PrinterSettings.PrintFileName = "ToPDF.pdf";

            // ドキュメントを印刷
            printDoc.Print();
        }
    }
}
```

## C# でカスタムサイズの用紙に Word ドキュメントを印刷する
印刷物が特定のサイズ要件を満たす必要がある場合や、特定の用途に合わせて印刷する必要がある場合、用紙サイズを設定することが重要です。カスタムサイズの用紙に Word を印刷する手順は以下の通りです。
- `Document` オブジェクトを作成します。
- `Document.LoadFromFile()` メソッドを使用して Word ドキュメントを読み込みます。
- `Document.PrintDocument` プロパティを介して `PrintDocument` オブジェクトを取得します。
- `PrintDocument.PrinterSettings.PrinterName` プロパティでプリンター名を指定します。
- `PrintDocument.DefaultPageSettings.PaperSize` プロパティで用紙サイズを指定します。
- `PrintDocument.Print()` メソッドでドキュメントを印刷します。

**コード例**
```c#
using Spire.Doc;
using System.Drawing.Printing;

namespace PrintOnCustomSizedPaper
{
    class Program
    {
        static void Main(string[] args)
        {
            // ドキュメントオブジェクトを作成
            Document doc = new Document();

            // Wordドキュメントをロード
            doc.LoadFromFile("Sample.docx");

            // PrintDocumentオブジェクトを取得
            PrintDocument printDoc = doc.PrintDocument;

            // プリンタ名を指定
            printDoc.PrinterSettings.PrinterName = "HP Color LaserJet MFP";

            // 用紙サイズを指定
            printDoc.DefaultPageSettings.PaperSize = new PaperSize("custom", 500, 800);

            // ドキュメントを印刷
            printDoc.Print();
        }
    }
}
```

この記事では、.NETプログラムでC#を使ってWord文書を印刷する方法を紹介します。

Word文書操作のヒントについては、[Spire.Doc for .NETチュートリアル](https://jp.e-iceblue.com/tutorials/net/spire-doc-net/doc-net-program-guide-content.html)をご覧ください。