C#メモ Word文章をPDF形式で保存してみる

C#

ちょい野暮用で調べたんで。

ポイントはこんなとこ。

  • WordのCOMへの参照を追加する
  • WordのCOMを使ってWord文章のファイルの読み込む
  • PDF形式でファイルを出力する

まずはWordのCOMへの参照を追加する。

  1. ソリューションエクスプローラのツリーで"参照"って項目のとこで右クリックして、出てきたメニューの"参照の追加"ってのをクリックする。
  2. “参照マネージャ"って画面が表示されるので、"Microsoft Word XX.X Object Library"って項目にチェックを入れたら画面右下のOKボタンをクリックする。
    参照が追加されたら"Microsoft.Office.Interop.Word"って項目が表示される。

んで、コードはこんな感じ。

/// <summary>
/// エントリーポイント
/// </summary>
/// <param name="arguments">コマンドライン引数</param>
static void Main(string[] arguments)
{
	// Wordを取り扱うための変数を定義する
	// ※ExcelやPowerPointも同じようなクラス名なので明示的に名前空間を書くことにする
	Microsoft.Office.Interop.Word.Application objWord = null;
	Microsoft.Office.Interop.Word.Documents objDocuments = null;
	Microsoft.Office.Interop.Word.Document objDocument = null;
	// ファイル名を定義する
	string strWordFilePath = string.Empty;
	string strPdfFilePath = @"C:\Users\tetsuyanbo\Desktop\sample.pdf";

	try
	{
		// ファイルパスを初期化する
		// ※今回PDFはWord文章と同じ場所に拡張子だけ変えて保存するようにした
		strWordFilePath = @"C:\Users\tetsuyanbo\Desktop\sample.docx";
		strPdfFilePath = System.IO.Path.GetDirectoryName(strWordFilePath) + @"\" + System.IO.Path.GetFileNameWithoutExtension(strWordFilePath) + @".pdf";
		// Wordオブジェクトを実体化する
		objWord = new Microsoft.Office.Interop.Word.Application();
		// 文章を管理しているオブジェクトを取得する
		objDocuments = objWord.Documents;
		// PDFに変換するWord文章を開く
		objDocument = objDocuments.Open(strWordFilePath);
		// PDF形式で保存する
		objDocument.ExportAsFixedFormat(strPdfFilePath, Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF);
	}
	catch(System.Exception objException)
	{
		System.Console.WriteLine(objException.Message);
	}
	finally
	{
		// 例外が発生しても必ずWordの文章を閉じるように処理はここ
		if (objDocument != null)
		{
			objDocument.Close();
		}
		// 例外が発生しても必ずWordを狩猟するように処理はここ
		if(objWord != null)
		{
			objWord.Quit();
		}
	}
}

試しにPDFに変換してみるExcelのファイルはこんな感じ。

試しに準備したWord文章はこんな感じ。

んで、実行してみたらこんな感じ。

確認で出来たPDFを開いてみるとこんな感じ。

なんか…とっても簡単だな…。

んまま、明日への自分へのメモってことで。