2010-02-26 7 views
1

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

Спасибо,

ответ

2

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

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

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

1

До SL4:

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

> визуализирует его как PDF (один из способов сделать то есть использовать «FO»), что такое «FO»? – Lari13