IRONWORDの使用

C#でWordをPDFに変換する方法

更新済み 11月 13, 2023
共有:

プログラムで文書を変換することは、多くのアプリケーションで必須の機能となっている。 特にビジネスの世界では、Word文書をPDFファイルに変換することは日常的な作業です。 ありがたいことに、C#(シーシャープ)とMicrosoft Interopを使えば、WordファイルをシームレスにPDFに変換できる。 このチュートリアルでは、C#(シーシャープ)を使ってプログラムでWordをPDFに変換するプロセスについて説明します;

前提条件

コードに入る前に C#(シーシャープ)を使用して.DOCXをPDFに変換する必要な環境を整えておくことは非常に重要だ。 以下は必要な前提条件である:

マイクロソフト・ワードのインストール

コンピュータにMicrosoft Wordがインストールされていることを確認してください。 Interopサービスは、Word文書とPDF変換を処理するためにWordの組み込み機能を使用します。

ビジュアルスタジオ

のバージョン ビジュアルスタジオ は、C#(シーシャープ)プログラムの作成、コンパイル、実行に必要です。 まだVisual Studioをお持ちでない方は、以下のサイトからコミュニティ版を無料でダウンロードできます。 マイクロソフト公式サイト.

パッケージ Microsoft.Office.Interop.Word をインストールする。

このパッケージは、C#(シーシャープ)プログラムがWord文書と対話するために必要な機能を提供するために不可欠です。 これは後でNuGet Package Managerを使ってインストールされるが、変換プロセスにおける重要性を知っておくことは良いことだ。

変換用Word文書

変換したいWord文書または.docxファイルを用意する。 C#(シーシャープ)プログラムで指定する必要があるため、マシン上のパスを確認してください。

十分なパーミッション

Wordファイルを読み込み、結果のPDFファイルを目的のディレクトリに書き込めることを確認してください。 管理者としてVisual Studioを実行することで、権限関連の問題が解決することがあります。

これらの前提条件があれば、環境をセットアップし、Word文書をPDFファイルに変換することができます。

環境の設定

  1. Visual Studioを開いてください。

  2. 新しいC#(シーシャープ)コンソールアプリケーションを作成します。

  3. NuGet Package Manager > Manage NuGet Packages for Solution** に移動します。

  4. Microsoft.Office.Interop.Word`」を検索し、インストールする。 このパッケージは、私たちのアプリケーションがWordと通信し、Wordファイルを変換できるようにします。

    C#(シーシャープ)でWordをPDFに変換する方法:図1 - Visual Studioを開き、新しいコンソールアプリプロジェクトを作成します。 NuGet Package Manager > Manage Packages for Solutionにアクセスします。 Microsoft.Office.Interop.Word」を検索し、インストールする。 このパッケージは、コンソール・アプリケーションがWordと対話し、Wordファイルを変換するのに役立ちます。

Word文書をPDFに変換するサンプルコード

C#(シーシャープ)を使ってWord文書をPDFに変換するには、Microsoft Interopサービスの機能を使います。 以下のコード・スニペットはこのタスクを実行するもので、詳細な説明はその後に続く。

using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        var wordApp = new Word.Application();
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        var outputPath = @"path_where_you_want_to_save_pdf.pdf";
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        wordDocument.Close();
        wordApp.Quit();

        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
using System;
using Word = Microsoft.Office.Interop.Word;

class Program
{
    static void Main()
    {
        var wordApp = new Word.Application();
        var wordDocument = wordApp.Documents.Open(@"path_to_your_word_file.docx");

        var outputPath = @"path_where_you_want_to_save_pdf.pdf";
        wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF);

        wordDocument.Close();
        wordApp.Quit();

        Console.WriteLine("Word document converted to PDF successfully!");
    }
}
Imports System
Imports Word = Microsoft.Office.Interop.Word

Friend Class Program
	Shared Sub Main()
		Dim wordApp = New Word.Application()
		Dim wordDocument = wordApp.Documents.Open("path_to_your_word_file.docx")

		Dim outputPath = "path_where_you_want_to_save_pdf.pdf"
		wordDocument.ExportAsFixedFormat(outputPath, Word.WdExportFormat.wdExportFormatPDF)

		wordDocument.Close()
		wordApp.Quit()

		Console.WriteLine("Word document converted to PDF successfully!")
	End Sub
End Class
VB   C#

コードの説明

コードの冒頭には、2つの重要な名前空間が含まれている。 System`名前空間はC#プログラミングの基本的なクラスを提供し、ほとんどすべてのC&numで定番となっている;

実際の動作はMainメソッドの中で始まる。 まず、new Word.Application'を使ってWordアプリケーションの新しいインスタンスを作成する。(). このステップは、MS Wordを起動するようなものだが、すべてはバックグラウンドで行われ、ユーザーには見えない。 アプリケーションのインスタンスが初期化されたら、wordApp.Documents.OpenメソッドでWord文書を開くように指示する。 path_to_your_word_file.docx "の代わりにWord文書へのパスを指定することが重要である。

さて、ドキュメントを開いたところで、PDFを保存する場所を決めます。 これは output path 変数で指定する。 パスは、変換された出力PDFファイルがある場所に合わせる必要があることに注意してください。

Word文書をPDF**に変換するマジックは、wordDocument.ExportAsFixedFormat'という行で起こります。(...). Interopサービスは、組み込みの方法を提供し、手間をかけずに変換を可能にする。 このメソッドは2つの主要な引数を取ります:PDFを保存すべきパスとエクスポート・フォーマット(この場合はPDF)です。

変換後、使用したリソースを閉じることは良い習慣です。したがって、`wordDocument.Close()は開いたドキュメントを確実に閉じます。()バックグラウンドで起動したWordアプリケーションのインスタンスを確実に終了させる。

最後に、このプログラムはシンプルなコンソール・メッセージで結果をユーザーに伝える。 コンソール.WriteLine()メソッドは、変換処理が正常に実行されたことを示すフィードバックを提供する。

このように、Microsoft.Office.Interop.WordはWord文書を扱い、変換するための適切なソリューションを提供する。

IronXL (アイアンXL)の紹介 インターロップに代わる優れた選択肢

Microsoft.Office.Interopは、文書変換のための実行可能なソリューションを提供しますが、Excels.Office.Interopで作業するための、より効率的で堅牢な代替手段があります: IronXL.

IronXL は、C#(シーシャープ)でExcelファイルを処理するプロセスを簡素化します。 スピードと使いやすさの点でInteropを上回るだけでなく、Microsoft Officeのような追加インストールも不要です。さらに詳しくお知りになりたいですか? の詳細なチュートリアルをご覧ください。 C#(シーシャープ)を使ってエクセルファイルを読み込む方法.

IronXL ライブラリは、NuGet Package Manager コンソールで以下のコマンドを使用してインストールできます:

Install-Package IronWord

C#(シーシャープ)でWordをPDFに変換する方法:図2 - .NET 用 IronXL (アイアンXL):C#(シーシャープ)エクセルライブラリ

スプレッドシートファイルタイプを変換する

using IronXL;
using System.IO;

// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");

// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();

// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
using IronXL;
using System.IO;

// Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
WorkBook workBook = WorkBook.Load("sample.xlsx");

// Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls");
workBook.SaveAs("sample.xlsx");
workBook.SaveAs("sample.tsv");
workBook.SaveAsCsv("sample.csv");
workBook.SaveAsJson("sample.json");
workBook.SaveAsXml("sample.xml");

// Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html");
string htmlString = workBook.ExportToHtmlString();

// Export the excel file as Binary, Byte array, Data set, Stream
byte [] binary = workBook.ToBinary();
byte [] byteArray = workBook.ToByteArray();
System.Data.DataSet dataSet = workBook.ToDataSet(); // Allow easy integration with DataGrids, SQL and EF
Stream stream = workBook.ToStream();
Imports IronXL
Imports System.IO

' Import any XLSX, XLS, XLSM, XLTX, CSV and TSV
Private workBook As WorkBook = WorkBook.Load("sample.xlsx")

' Export the excel file as XLS, XLSX, XLSM, CSV, TSV, JSON, XML
workBook.SaveAs("sample.xls")
workBook.SaveAs("sample.xlsx")
workBook.SaveAs("sample.tsv")
workBook.SaveAsCsv("sample.csv")
workBook.SaveAsJson("sample.json")
workBook.SaveAsXml("sample.xml")

' Export the excel file as Html, Html string
workBook.ExportToHtml("sample.html")
Dim htmlString As String = workBook.ExportToHtmlString()

' Export the excel file as Binary, Byte array, Data set, Stream
Dim binary() As Byte = workBook.ToBinary()
Dim byteArray() As Byte = workBook.ToByteArray()
Dim dataSet As System.Data.DataSet = workBook.ToDataSet() ' Allow easy integration with DataGrids, SQL and EF
Dim stream As Stream = workBook.ToStream()
VB   C#

上記のサンプルコードにあるように、IronXLライブラリはInteropを使わずにExcelファイルを読み込むことができます。さらに、IronXLライブラリを使ってワークブックを読み込み、SaveAsメソッドを使ってXLS, XLSX, XLSM, CSV, TSV, JSON, XMLといったさまざまな形式にエクスポートすることができる。 また、HTML文字列、バイナリ、バイト配列、データセット、メモリストリームなどのデータタイプをコード内で直接エクスポートすることもできる。

結論

今日のデジタル時代において、文書変換、特にWord文書からPDFへの変換は、多くのアプリケーションにとって不可欠なものとなっています。 C#(シーシャープ)とMicrosoft Interopが提供する機能を使えば、これを実現できる。

しかし、次のような優れたツールで常に最新の情報を得ることができる。 IronXL これはパフォーマンスを向上させ、プロセスを簡素化する。 IronXL (アイアンXL)を試してみようとお考えの方は、以下をご覧ください。 無料試用. 一度その実力を体験すれば、ライセンスはリーズナブルな $599 から開始され、投資に見合う価値を提供し、アプリケーションでのスムーズな文書処理を保証します。

< 以前
C# Word編集(コード例開発者チュートリアル)
次へ >
C#でWordドキュメントを開く

準備はできましたか? バージョン: 2024.9 新発売

無料のNuGetダウンロード 総ダウンロード数: 4,489 View Licenses >