gpt4 book ai didi

asp.net - 如何将 XPS 文档流式传输到浏览器并将其嵌入到网页中?

转载 作者:行者123 更新时间:2023-12-04 21:01:14 24 4
gpt4 key购买 nike

我正在寻找有关如何解决此问题的一些建议。任何输入表示赞赏!

目前,我有一个 ASP.NET MVC 应用程序。在客户端上,我有一个带有 XPS 文档 ID 的链接。当用户单击链接时,他们将被带到包含有关文档的详细信息的页面。除了此信息之外,我还希望在同一页面中与此信息一起显示该文档。

在服务器端,一旦我有了 ID,我就可以从数据库中获取序列化为字节数组的文档。问题是,将序列化文档放入网页的最佳方法是什么?

我非常希望不必将该文档放入文件系统,然后将文件路径拼凑在一起。我希望能够将文档作为“application/vnd.ms-xpsdocument”的内容类型流式传输到浏览器。

我尝试过使用 Web 控件来处理这个问题(不能写出二进制文件),考虑过创建一个 HTTP 处理程序来做到这一点(不知道从哪里开始),并且已经用其他几种方法来获取文档流到浏览器。

此外,还有一个问题是如何在网页中嵌入文档。我是否使用 EMBED 标签?还是对象?或者我是否使用 iframe 并将源设置为指向提供文档的任何内容?

再说一次,我不希望有一个解决方案。我正在寻找有关如何解决此问题的一些建议。而且,虽然这个问题是关于 xps 文档的,但它适用于任何流式传输要托管在浏览器(PDF 等)中的二进制文件的应用程序。

好的,至于在浏览器中的显示,一个字:Silverlight。这样就解决了。我仍然需要找出将它从服务器发送到浏览器的最佳方式。

打那个。看来 Silverlight 还不够先进,无法显示 XPS 文档。我现在正在考虑一个指向 http 处理程序的 iframe... iframe 工作。太糟糕了,它把整个东西扔进了管道。我想我总是可以把第一页撕掉然后把那只小狗寄出去......

哇。不需要 HTTP 处理程序。 MVC 中的自定义 ActionResult 就是您所需要的。这有多可怕?

最佳答案

我认为最简单的方法是将文档作为来自详细信息页面的链接 (target="_blank") 提供。这有几个优点:

  • 除非用户要求,否则您不需要检索和流式传输整个文档。
  • 在我的系统上,至少 IE 已经注册为默认的 XPS 查看器,因此通过为文档提供它自己的窗口,您可以避免如何嵌入它的整个问题。
  • 为文档提供流媒体源变得很简单:只需使用带有 ID 的 HTTP 处理程序作为查询字符串参数。

  • 即使您不喜欢这个想法,也一定要使用 HTTP Handler 来传输文档。这真的很简单:当您在 Visual Studio 中创建一个新的 HTTP 处理程序时,它应该为您提供一个漂亮的页面,其中所有繁忙的工作都已经完成。

    关于asp.net - 如何将 XPS 文档流式传输到浏览器并将其嵌入到网页中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/154318/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com