Winforms .NET 3.5-在本机查看器中直接从流打开PDF

Winforms .NET 3.5-在本机查看器中直接从流打开PDF,winforms,pdf,.net-3.5,c#-3.0,pdf-generation,Winforms,Pdf,.net 3.5,C# 3.0,Pdf Generation,我正在从事一个WinForms C#3.0/.NET3.5项目,涉及构建一些固定报告。该项目的一个要求是导出为PDF格式,目前将其导出到磁盘工作正常。然而,有人提出了这样一个问题:是否可以将文件导出到流并直接在客户机上的本机查看器中打开它,而完全跳过将其写入磁盘。我知道,通过使用Response.Write()头等,ASP.Net在某种程度上可以做到这一点,但我需要尝试使用标准的WinForms/WPF来实现这一点,我已经用尽了自己的想法。如果可能的话,有人对如何做到这一点有什么见解吗?还是必须

我正在从事一个WinForms C#3.0/.NET3.5项目,涉及构建一些固定报告。该项目的一个要求是导出为PDF格式,目前将其导出到磁盘工作正常。然而,有人提出了这样一个问题:是否可以将文件导出到流并直接在客户机上的本机查看器中打开它,而完全跳过将其写入磁盘。我知道,通过使用Response.Write()头等,ASP.Net在某种程度上可以做到这一点,但我需要尝试使用标准的WinForms/WPF来实现这一点,我已经用尽了自己的想法。如果可能的话,有人对如何做到这一点有什么见解吗?还是必须先将文件写入磁盘,然后单独打开?

您需要将PDF写入临时目录


从内存流中显示PDF的唯一方法是嵌入第三方PDF查看器控件。您需要将PDF写入临时目录


从内存流中显示PDF的唯一方法是嵌入第三方PDF查看器控件

我认为重要的是,你要问问自己,如果绕过文件系统,你能完成什么。向标准临时文件夹中写入数据是完全可以接受的解决方案。浏览器通常允许您查看媒体文件和PDF。我将专注于编写一个很好的清理函数,在创建临时文件后将其删除。另外,如果不保存文件,导出为PDF的目的是什么

在Unix/Linux下,您可以在文件系统中创建一个命名管道。如果您想要在应用程序之间缓冲一个巨大的媒体流,这是有意义的。在PDF的情况下,你赢的很少


导出到临时文件夹。没关系。

我认为重要的是,你要问问自己,如果你绕过文件系统,你能完成什么。向标准临时文件夹中写入数据是完全可以接受的解决方案。浏览器通常允许您查看媒体文件和PDF。我将专注于编写一个很好的清理函数,在创建临时文件后将其删除。另外,如果不保存文件,导出为PDF的目的是什么

在Unix/Linux下,您可以在文件系统中创建一个命名管道。如果您想要在应用程序之间缓冲一个巨大的媒体流,这是有意义的。在PDF的情况下,你赢的很少


导出到临时文件夹。没关系。

不幸的是,我无权讨论该项目的全部范围。考虑到这一点,当这个想法向我提出时,我实际上问了同样的问题。由于预期此代码将在哪些平台上执行,资源使用是一个问题,可用磁盘空间也是一个问题。能够跳过磁盘写入将节省时间和宝贵的系统资源。不幸的是,我不能自由讨论该项目的全部范围。考虑到这一点,当这个想法向我提出时,我实际上问了同样的问题。由于预期此代码将在哪些平台上执行,资源使用是一个问题,可用磁盘空间也是一个问题。能够跳过对磁盘的写入将节省时间和宝贵的系统资源。您有没有同样的解决方案?我需要在ASP.NET 3.5上实现相同的逻辑。如能及时答复,将不胜感激。提前谢谢你。你有没有同样的解决方案?我需要在ASP.NET 3.5上实现相同的逻辑。如能及时答复,将不胜感激。先谢谢你。