我想使用iTextSharp库生成PDF或RTF文档,可以使用我用来在文件(FileStream)上生成文档的相同代码将其复制到剪贴板。
这样我的应用程序就可以为用户提供两个选项:生成文件或剪贴板。
答案 0 :(得分: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中粘贴(从内存),图像将不会出现,但如果我从文件加载,一切都OK。有什么建议吗?