SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

ComponentZine(ComponentOne)(AD)

ComponentOne Studio for WPFでアプリケーションからWord、PDFを取り扱う

  • このエントリーをはてなブックマークに追加

Word形式でファイルを保存する

 C1Wordを用いて、Word形式(.docx)とリッチテキスト形式(.rtf)のファイルを出力する方法を紹介します。

Word形式での保存方法

 まずは、テキストを一行書き込んで保存する方法を紹介します。

参照の追加

 ソリューションエクスプローラーの「参照」を右クリック→「参照の追加」をクリックします。

参照の追加
参照の追加

 左ナビの「アセンブリ」→「拡張」から「C1.WPF.Word JPN」にチェックを入れ、右下の「OK」をクリックします。

C1.WPF.Word JPNの追加
C1.WPF.Word JPNの追加

 「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の追加
using C1.WPF.Word;

処理の記述

 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の機能は以下の公式ドキュメントを参照ください。

次のページ
PDF形式でファイルを保存する

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
ComponentZine(ComponentOne)連載記事一覧

もっと読む

この記事の著者

西村 誠(ニシムラ マコト)

 Microsoft MVP Windows Platform Development。 Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。 ブログ:眠るシーラカンスと水底のプログラマー 著書:基礎から学ぶ Windowsストアアプリ開発

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9907 2017/01/10 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング