ファイル(FileStream)でドキュメントを生成するために使用するのと同じコードを使用して、クリップボードにコピーできるiTextSharpライブラリを使用してPDFまたはRTFドキュメントを生成したいと思います。
このようにして、私のアプリケーションはユーザーに 2 つのオプションを提供します: ファイルまたはクリップボードに生成します。
ファイル(FileStream)でドキュメントを生成するために使用するのと同じコードを使用して、クリップボードにコピーできるiTextSharpライブラリを使用してPDFまたはRTFドキュメントを生成したいと思います。
このようにして、私のアプリケーションはユーザーに 2 つのオプションを提供します: ファイルまたはクリップボードに生成します。
基本的に、すべての iTextSharp ドキュメントはSystem.IO.Stream
.
Document doc = new Document(PageSize.A4);
RtfWriter2.GetInstance(doc, stream);
通常、 を使用してドキュメントをファイルに保存しますFileStream
。同じコードを使用してドキュメントをクリップボードに貼り付けるには、MemoryStream
代わりに a を使用します。
MemoryStream stream = new MemoryStream();
Document doc = new Document(PageSize.A4);
RtfWriter2.GetInstance(doc, stream);
// (...) document content
doc.Close();
string rtfText = ASCIIEncoding.ASCII.GetString(stream.GetBuffer());
stream.Close();
Clipboard.SetText(rtfText, TextDataFormat.Rtf);
画像のみに問題がありました: iTextSharp は、\bin
タグの後に画像のバイトを保存して画像をエクスポートしているようです。一部のライブラリは、バイナリ コンテンツを 16 進文字としてエンコードします。Wordに(メモリから)貼り付けると画像が表示されませんが、ファイルから読み込むとすべて問題ありません。助言がありますか?