本当に を使用して RTF コンテンツを生成したい場合は、TRichEdit
生成されたネイティブ RTF を変換された HTML と一緒に保存する必要があります。使用している唯一の理由がTRichEdit
、単純な書式設定機能を使用できるようにすることである場合は、ネイティブ HTML コンテンツを生成する HTML 編集コントロールを使用する方がよいでしょう。
どちらの方法を使用する場合でも、ユーザーがコンテンツを編集できるようにネイティブ形式を保存し、必要に応じて他の形式に変換することをお勧めします (双方向に変換するのではなく)。
を使用するTRichEdit
と、RTF コンテンツをコントロールの内外で簡単にストリーミングできますが、次の方法をお勧めTJvRichEdit
しTRichEdit
ます。
procedure GetRTFData(MS: TMemoryStream; RTF: TRichEdit);
begin
MS.Clear;
RTF.Lines.SaveToStream(MS);
MS.Position := 0;
end;
procedure SetRTFData(MS: TMemoryStream; RTF: TRichEdit);
begin
MS.Position := 0;
RTF.StreamFormat := sfRichText;
RTF.Lines.LoadFromStream(MS);
end;
RTF を HTML に手動で変換するのは簡単なことではありません。Unicode 文字に関する考慮事項、フォント スタイル、フォント コード、段落の書式設定、番号付きリスト、特殊な HTML 文字などがあります。単純な書式設定をサポートするだけでよい場合でも、ユーザーは、MSWord からコンテンツをコピーして、あらゆる種類の書式設定やフォント スタイルを使用してアプリに貼り付けるなど、変換の頭痛の種となる他の機能を使用することがよくあります。
JvRichEditToHtml
. JvRichEditToHtml
ユーザーがコピー/貼り付けを介して複雑なコンテンツを導入したり、キーボード ショートカットを使用してコンテンツをフォーマットしたりしない限り (例: 箇条書き = ctrl+shft+L、インデント = ctrl+M、等。)。
RTF でのオーサリングと HTML への変換の複雑さを回避したい場合は、Delphi 用の優れた HTML 編集コントロールもいくつかあります。
Google 検索結果 :: Delphi、HTML、エディタ、コンポーネント
スタック オーバーフロー :: Delphi、HTML、エディタ、コンポーネント
その豊富な機能のために使用TRichView
します。RTF の読み込み/作成、および HTML のエクスポートが可能です。ただし、無料ではありません。無料のものを探しているなら、TJvRichView
良いJvRichEditToHtml
選択肢です。