GUIの作成
フォームはButtonを2つとTextBoxを1つ、C1PdfDocumentコンポーネントを1つ配置する簡単なものです。
C1PdfDocumentコンポーネントは機能を提供するコンポーネントで、ユーザーの操作は受け付けませんのでフォームの外に配置されます。TextBoxは、Multilineプロパティを「True」にし、ScrollBarsプロパティを「Vertical」に設定しておきます。
なお、PowerTools PDF for .NETのC1PdfDocumentコンポーネントについての説明は、前回の記事を参照してください。
簡単なRTFテキストのPDF化処理の作成 1
まずはじめに、簡単なRich Text Formatで作成した文字列をPDF化する処理を作成してみましょう。
この処理は、ボタン「簡単な rtf 出力」のClickイベントハンドラに作成します。RTFは、HTMLのように専用のタグをテキストデータの前後に付けることで、RTFリーダーアプリケーションがこのタグを解釈して文字の装飾などを行います。
そこで、RTFテキストを作成する方法を知るために、簡単な文字列を使ってテキスト装飾機能を試してみます。
RTFタグについて
RTFのタグは、HTMLのようなスタイルを持ち、フォントやカラー、テーブルなどを自在に操作できるようになっています。基本的には、装飾を実施したい文字列を{}
で囲み、\
記号とタグ名、パラメータを指定します。
例えば、「boldly」という文字を太字にしたければ、
{\b boldly}
{\\b boldly}
と記述します。C#では\
記号を表すために\\
と記述する点に注意してください。
また、フォントサイズを40にしたければ、
{\fs40 boldly}
{\\fs40 boldly}
と記述します。\fs
がタグで、「40」がパラメータです。
1つの文字列に複数の装飾を施したい場合があります。その場合は、タグごとに{}
で括ります。例えば、「no one」という文字列に斜体・フォントサイズ40・文字色を青、という装飾を適用するには、次のように記述します。
{\i {\fs40 {\cf2 no one }}}
{\\i {\\fs40 {\\cf2 no one }}}
\i
は文字を斜体にするタグです。\cf
はカラーテーブルにある色を指定するタグで、「2」が青色を表すカラーテーブルの番号です(カラーテーブルについてはこのあと説明します)。
最初のタグの{}
の中に、次のタグを{付きで記述し、文字列の終端に{
の数だけ}
をつけます。必ず、{}
の数が一致するように記述してください。数が不一致だと正常に文章を出力できなくなります。
文字列を改行するには、エスケープシーケンスのCR・LFではなく、\par
というタグを使用します。このタグだけは{}
を必要としません。今の文字列の終端で改行したければ、次のように記述します。
{\i {\fs40 {\cf2 no one \par}}}
{\\i {\\fs40 {\\cf2 no one \\par}}}
このように、装飾したい文字列ごとに{}
で括り、タグとパラメータがあるものはそのデータを記述していきます。