Как я могу передать документ XPS в браузер и встроить его на веб-страницу?

StackOverflow https://stackoverflow.com/questions/154318

Вопрос

Я ищу несколько предложений о том, как это сделать.Любой вклад приветствуется!

В настоящее время у меня есть приложение ASP.NET MVC.На клиенте у меня есть ссылка с идентификатором документа XPS.Когда пользователь нажимает ссылку, он попадает на страницу с подробной информацией о документе.В дополнение к этой информации я хочу отобразить документ рядом с этой информацией на той же странице.

На стороне сервера, получив идентификатор, я могу получить документ, сериализованный в виде массива байтов, из базы данных.Вопрос в том, что лучший способ разместить этот сериализованный документ на веб-странице?

Я бы ОЧЕНЬ предпочел бы не помещать этот документ в файловую систему, а затем смешивать путь к файлу.Я хотел бы иметь возможность передавать документ в браузер как тип контента «application/vnd.ms-xpsdocument».

Я попытался использовать веб-элемент управления для этой обработки (не могу записать двоичный код), подумал о создании обработчика HTTP для этого (не знаю, с чего начать) и возился с парой других способов получить документ. трансляция в браузер.

Кроме того, также возникает вопрос, как встроить документ в веб-страницу.Использую ли я тег EMBED?Или Объект?Или я использую iframe и устанавливаю источник так, чтобы он указывал на то, что доставляет документ?

Опять же, я не жду решения, завернутого в бантик.Я ищу совет, как это сделать.И хотя этот вопрос касается документов xps, он относится к любому приложению, которое передает в потоковом режиме двоичный файл, который должен быть размещен в браузере (PDF-файлы и т. д.).


Ладно, насчет отображения в браузере одно слово:Сильверлайт.Это решено.У меня все еще есть проблема с поиском лучшего способа отправить его с сервера в браузер.


Ударьте это.Похоже, Silverlight еще недостаточно развит для отображения документа XPS.Сейчас я думаю об iframe, указывающем на обработчик http...iframe работает.Жаль, что все это выбрасывается в трубу.Полагаю, я всегда мог бы оторвать первую страницу и послать этого щенка...


Ух ты.Нет необходимости в обработчике HTTP.Пользовательский ActionResult в MVC — это все, что вам нужно.Насколько это чертовски круто?

Это было полезно?

Решение

Я думаю, что самым простым способом было бы предоставить документ в виде ссылки (target="_blank") со страницы сведений.Это имеет несколько преимуществ:

  • Вам не нужно извлекать и транслировать весь документ, если только пользователь не попросит об этом.
  • В моей системе, по крайней мере, IE уже зарегистрирован в качестве средства просмотра XPS по умолчанию, поэтому, предоставляя документу собственное окно, вы избегаете всего вопроса о том, как его встроить.
  • Это упрощает предоставление потокового источника для документа:просто используйте обработчик HTTP с идентификатором для параметра строки запроса.

Даже если вам не нравится эта идея, обязательно используйте обработчик HTTP для передачи документа.Это очень просто сделать:когда вы создаете новый обработчик HTTP в Visual Studio, он должен предоставить вам красивую страницу со всей проделанной работой.

Другие советы

Существует элемент управления Silverlight, способный отображать документы XPS.Видеть http://firstfloorsoftware.com/blog/announcement-document-toolkit-for-silverlight/ для большего

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top