Word形式でファイルを保存する
C1Wordを用いて、Word形式(.docx)とリッチテキスト形式(.rtf)のファイルを出力する方法を紹介します。
Word形式での保存方法
まずは、テキストを一行書き込んで保存する方法を紹介します。
参照の追加
ソリューションエクスプローラーの「参照」を右クリック→「参照の追加」をクリックします。
左ナビの「アセンブリ」→「拡張」から「C1.WPF.Word JPN」にチェックを入れ、右下の「OK」をクリックします。
「C1.WPF.Word JPN」が表示されていない場合はComponentOne Studio for WPFのバージョンが古い可能性があります。
サイトからComponentOne Studioの最新版をダウンロードするかC1LiveツールでComponentOne Studio for WPFを最新にしてください。C1Liveツールはデフォルトインストールでは、以下の場所にあります。
C:\Program Files (x86)\ComponentOne\C1Live\C1LiveUI.2.exe
usingの追加
MainWindow.xaml.csに以下のusingを追加します。
using C1.WPF.Word;
処理の記述
Wordのファイルをドキュメントフォルダに保存するシンプルな処理を紹介します。
// ドキュメントクラスを作成 C1WordDocument word = new C1WordDocument(); word.Clear(); // ドキュメント情報を設定します word.Info.Author = "CodeZine"; word.Info.Subject = "C1Wordサンプル"; word.Info.Title = "サンプル"; // テキストとフォントの設定 string text = "C1WordでWord形式のファイルを保存するサンプル"; Font font = new Font("Segoe UI Light", 20, RtfFontStyle.Bold); // パラグラフを追加 word.AddParagraph(text, font, Colors.Blue, RtfHorizontalAlignment.Justify); // 保存するファイルのパス // ドキュメントフォルダーに保存する string document_path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // ファイル名 string file_name = "sample.docx"; // 保存処理 word.Save(document_path + System.IO.Path.DirectorySeparatorChar + file_name);
アプリケーションでは、上記に保存フォルダをダイアログでユーザーに選択させる処理などが必要になりますが、ここでは簡略化のため省略してあります。ダイアログでファイル保存先を選択させるサンプルは公式のクイックスタートを参照ください。
C1Wordの機能紹介
C1Wordの基本的な機能を紹介します。
画像の表示
Wordドキュメントに画像を含めることができます。
以下は画像を表示する簡単なサンプルです。ドキュメントフォルダーにsample.pngというファイルがあることを前提としています。
// ドキュメントフォルダーのパス string document_path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); // 書き込み可能なビットマップに画像をロードします BitmapImage bitmap = new BitmapImage(); FileStream stream = File.OpenRead(document_path + System.IO.Path.DirectorySeparatorChar + "sample.png"); bitmap.BeginInit(); bitmap.StreamSource = stream; bitmap.EndInit(); var wb = new WriteableBitmap(bitmap); Rect rect = new Rect(30, 30, 120, 120); // アスペクト比を維持して画像をページの中央に配置します word.DrawImage(wb, rect);
グラフィックの描画
円形、四角形、ベジェ曲線。折れ線グラフなどを描くこともできます。
以下は円を描画するサンプルです。
Rect rect = new Rect(30, 180, 120, 120); word.FillPie(Colors.Red, rect, 0, 360); word.DrawImage(wb, rect);
その他、C1Wordの機能は以下の公式ドキュメントを参照ください。