1

我想使用可以复制到剪贴板的 iTextSharp 库生成 PDF 或 RTF 文档,使用与在文件 (FileStream) 上生成文档相同的代码。

这样,我的应用程序将为用户提供两个选项:生成到文件或到剪贴板。

4

1 回答 1

0

基本上每个 iTextSharp 文档都附加到一个System.IO.Stream.

Document doc = new Document(PageSize.A4);
RtfWriter2.GetInstance(doc, stream);

通常我们将文档保存到文件中,使用FileStream. 要使用相同的代码将文档粘贴到剪贴板中,我们使用 aMemoryStream代替。

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标记后保存了图像的字节。一些库将二进制内容编码为十六进制字符。当我(从内存中)粘贴到 Word 中时,图像不会出现,但如果我从文件加载,一切正常。有什么建议么?

于 2009-09-30T20:51:40.023 回答