Как передать потоковый документ XPS в браузер и вставить его на веб-страницу? - PullRequest
5 голосов
/ 30 сентября 2008

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

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

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

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

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

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

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


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


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


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

Ответы [ 2 ]

2 голосов
/ 30 сентября 2008

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

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

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

1 голос
/ 02 апреля 2009

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

...