PDF for .NET
DrawStringRtf(String,Font,Brush,RectangleF,Int32) メソッド
使用例 

C1.Pdf.6 アセンブリ > C1.Pdf 名前空間 > C1PdfDocument クラス > DrawStringRtf メソッド : DrawStringRtf(String,Font,Brush,RectangleF,Int32) メソッド
描画する RTF 文字列。
描画テキストの外観とサイズを定義する System.Drawing.Font オブジェクト。
描画テキストの色を定義する System.Drawing.Brush オブジェクト。
描画テキストの位置をページの左上隅からのポイント数で指定する System.Drawing.RectangleF 構造体。
描画する最初の文字のインデックス(通常は以前の DrawStringRtf の呼び出しの返り値)。
RTF 文字列を指定された四角形内に指定された System.Drawing.Brush オブジェクトと System.Drawing.Font オブジェクトで、 文字列内の指定されたオフセットから描画します。
シンタックス
'宣言
 
Public Overloads Function DrawStringRtf( _
   ByVal text As System.String, _
   ByVal font As System.Drawing.Font, _
   ByVal brush As System.Drawing.Brush, _
   ByVal rc As System.Drawing.RectangleF, _
   ByVal firstChar As System.Integer _
) As System.Integer
public System.int DrawStringRtf( 
   System.string text,
   System.Drawing.Font font,
   System.Drawing.Brush brush,
   System.Drawing.RectangleF rc,
   System.int firstChar
)

パラメータ

text
描画する RTF 文字列。
font
描画テキストの外観とサイズを定義する System.Drawing.Font オブジェクト。
brush
描画テキストの色を定義する System.Drawing.Brush オブジェクト。
rc
描画テキストの位置をページの左上隅からのポイント数で指定する System.Drawing.RectangleF 構造体。
firstChar
描画する最初の文字のインデックス(通常は以前の DrawStringRtf の呼び出しの返り値)。

戻り値の型

指定された四角形に収まらないために出力されなかった最初の文字のインデックス。または、 文字列全体がレンダリングされた場合は、int.MaxValue の値。
解説

このメソッドは MeasureString(String,Font,Single) に似ていますが、 System.Windows.Forms.RichTextBox コントロールで使用されるような RTF(リッチテキスト形式)文字列を認識する点が異なります。

RTF 文字列には、次の 2 つの種類があります。

1) 完全 RTF 文字列には、文字列内で使用されるフォントと色を指定する RTF ヘッダーが含まれます。 この文字列は、System.Windows.Forms.RichTextBox.Rtf プロパティを使用して System.Windows.Forms.RichTextBox コントロールから取得するか、 ディスクに保存された RTF ファイルから取得できます。 この場合、font パラメータと brush パラメータは使用されません。

2) 部分 RTF 文字列には、埋め込み RTF タグは含まれますが、RTF ヘッダーは含まれません。この文字列は コードに簡単に組み込むことができ、これを使用して、太字や斜体などの特別な属性で テキストをレンダリングできます(例:「このテキストには {\b BOLD} と {\i ITALICS} が含まれます」)。 この場合は、font パラメータと brush パラメータを使用して、 RTF ヘッダーが自動的に構築されます。

DrawStringRtf メソッドは、出力四角形に収まらなかったために出力されなかった 最初の文字のインデックスを返します。この値を使用して、テキストを次のページに、または ページ内の次のフレームに連続的に配置できます。この値は、RTF 入力自体のインデックスではなく、 RTF で表されたテキスト内のインデックスであることに注意してください。下の例を参照してください。

使用例
次のコードは、長い文字列を複数のページにレンダリングし、 DrawString(String,Font,Brush,RectangleF,StringFormat) メソッドからの戻り値を使用して、出力を続行する位置を決定します。
// ページ四角形を計算します
RectangleF rcPage = _c1pdf.PageRectangle;
rcPage.Inflate(-72, -72);
            
// レンダリングする RTF を取得します
string text = richTextBox1.Rtf;
            
// 複数のページにまたがる RTF 文字列を出力します
_c1pdf.Clear();
for (int start = 0; start < int.MaxValue; )
{
    if (start > 0) _c1pdf.NewPage();
    start = _c1pdf.DrawStringRtf(text, Font, 
           Brushes.Black, rcPage, start);
}
            
// 結果を表示します
string fn = @"c:\temp\test\rtf.pdf";
_c1pdf.Save(fn);
System.Diagnostics.Process.Start(fn);
参照

C1PdfDocument クラス
C1PdfDocument メンバ
オーバーロード一覧