Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2017/01/10 14:00

目次

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


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

著者プロフィール

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

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

バックナンバー

連載:ComponentZine(ComponentOne Studio)

もっと読む

おすすめ記事

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5