2009-09-25 87 views
1

我想使用iTextSharp库生成PDF或RTF文档,该库可以复制到剪贴板,使用我用于生成文档的相同代码一个文件(FileStream)。iTextSharp - 如何在ClipBoard而不是文件中生成RTF文档

这样我的应用程序会给用户两个选项:生成到文件或剪贴板。

+0

你究竟准备粘贴PDF文档? – 2009-09-25 19:27:48

+0

我使用库iTextSharp生成一个RTF文件。但我想生成相同的内容并将其发送到剪贴板,而不是将其发送到文件。 – Jonas 2009-09-28 02:11:54

+0

沿着本文关于System.Windows.Forms Cliboard对象的方法如何: http://www.codeproject.com/KB/shell/clipboard01.aspx – 2009-09-30 03:24:32

回答

0

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

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

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

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中粘贴(从内存中)时,图像不会出现,但如果从文件加载,则一切正常。有什么建议么?

相关问题