1

ファイル(FileStream)でドキュメントを生成するために使用するのと同じコードを使用して、クリップボードにコピーできるiTextSharpライブラリを使用してPDFまたはRTFドキュメントを生成したいと思います。

このようにして、私のアプリケーションはユーザーに 2 つのオプションを提供します: ファイルまたはクリップボードに生成します。

4

1 に答える 1

0

基本的に、すべての 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に(メモリから)貼り付けると画像が表示されませんが、ファイルから読み込むとすべて問題ありません。助言がありますか?

于 2009-09-30T20:51:40.023 に答える