我想使用可以复制到剪贴板的 iTextSharp 库生成 PDF 或 RTF 文档,使用与在文件 (FileStream) 上生成文档相同的代码。
这样,我的应用程序将为用户提供两个选项:生成到文件或到剪贴板。
我想使用可以复制到剪贴板的 iTextSharp 库生成 PDF 或 RTF 文档,使用与在文件 (FileStream) 上生成文档相同的代码。
这样,我的应用程序将为用户提供两个选项:生成到文件或到剪贴板。
基本上每个 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 中时,图像不会出现,但如果我从文件加载,一切正常。有什么建议么?