Silverlight - Печать - PullRequest
       4

Silverlight - Печать

1 голос
/ 26 февраля 2010

У меня есть приложение Silverlight с DataGrid. Мне нужно распечатать выбранные элементы в DataGrid. Однако я не хочу использовать WritableBitmap. Могу ли я передать только эти элементы в службу WCF или на страницу .aspx и визуализировать HTML, который побудит пользователя напечатать? Если да, то как?

Спасибо,

Ответы [ 2 ]

2 голосов
/ 26 февраля 2010

Если вы используете Silverlight 4, вы можете использовать API печати, но я полагаю, что вы не зададите этот вопрос в этом случае.

В Silverlight 3, я думаю, вам придется прибегнуть к некоторому виду взлома, когда ваш SL-код вызывает функцию JavaScript, предоставляя ему выбранные данные в каком-то формате. Эта функция может открыть новое окно, в котором данные повторно отображаются в удобном для печати формате и затем печатаются.

Я упоминаю новое окно, потому что, полагаю, в окне, в котором размещен контент SL, уже есть контент, не связанный с данными для печати. ​​

1 голос
/ 26 февраля 2010

До SL4:

  1. Создать службу WCF, которая:
    • принимает блоб XML
    • отображает его как PDF (один из способов сделать это - использовать FO)
    • сохраняет его в некоторой временной области с уникальным идентификатором
    • возвращает идентификатор клиенту
  2. Создайте страницу ASPX, которая:
    • принимает идентификатор файла PDF, возвращенного службой WCF
    • передает сгенерированный PDF клиенту (с соответствующим Content-Type)
  3. SL клиент:
    • вызывает службу WCF и получает идентификатор сгенерированного файла PDF
    • создает URL сгенерированного файла PDF
    • использует любой из приемов JavaScript для всплытия этого URL в браузере (один из способов - скрытое IFRAME и установить его источник в URL)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...