我正在开发一个WinForms C#3.0 / .NET 3.5项目,涉及构建一些预制报告。该项目的一个要求是导出为PDF格式,目前这样做到磁盘工作正常。然而,问题是,如果可以将文件导出到流并直接在客户端的本机查看器中打开它,则跳过完全将其写入磁盘。我知道ASP.Net可以通过使用Response.Write()标头等来实现这一点,但我需要尝试使用标准的WinForms / WPF,并且我已经用尽了自己的想法。如果有可能的话,任何人都对如何做到这一点有任何见解?或者首先必须将文件写入磁盘,然后单独打开?
答案 0 :(得分:4)
我认为,如果绕过文件系统,问问自己完成了什么是很重要的。写入标准临时文件夹是一个完全可以接受的解决方案。这通常是浏览器允许您查看媒体文件和pdf的方式。我将专注于编写一个很好的清理函数,它在创建后删除临时文件。如果你没有保存文件,那么导出为PDF的目的是什么?
在Unix / Linux下,您可以在文件系统中创建命名管道。如果您想要在应用程序之间缓冲大量媒体流,这是有意义的。在PDF案例中,你赢得的很少。
导出到临时文件夹。没关系。
答案 1 :(得分:2)
您需要将PDF写入临时目录。
从内存流中显示PDF的唯一方法是嵌入第三方PDF查看器控件