2009-11-03 5 views
3

Какие у меня варианты печати в Silverlight 3? Предположим, у меня есть это замечательное приложение/управление Silverlight, которое создает графическое отображение некоторых данных. Теперь пользователь хочет распечатать его.Печать Silverlight

Я рассмотрел несколько вариантов, но мне еще предстоит проверить их. Прежде чем я это сделаю, я хотел бы получить некоторые отзывы о том, как это можно сделать.

  1. Используйте возможности браузера для печати. По моему опыту это не дает полезной печати, но, возможно, с некоторым взаимодействием между хостом Silverlight и браузером это можно сделать?

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

  3. Отправить XAML обратно на сервер, который затем отображается в приложении WPF, запущенном на сервере. В результате возвращается клиент. Я не уверен, что это возможно вообще, но если это сетевые накладные расходы меньше, чем в варианте 2. К сожалению, сложность на стороне сервера еще выше.

  4. Ждать Silverlight 4?

Одна вещь, которую я рассмотрел, что мой удивительный контроль, вероятно, будет иметь ScrollViewer на самом высоком уровне, но пользователь хочет напечатать все содержимое элемента управления, а не только то, что видно в пределах ScrollViewer. Как я могу справиться с этой дополнительной сложностью?

+1

FYI, Скотт Гу только что объявил, что печать будет поддерживаться в Silverlight 4. –

ответ

1

Что-то похожее на номер два - это ваш лучший выбор, и это то, что я видел для печати в большинстве приложений Silverlight.

У вас может быть приложение, отправляющее контент для печати на веб-сервер (т. Е. Новые параметры обработчика или строки запроса на страницу печати) и всплывает другая страница для печати пользователем веб-контента, или вы можете разрешить пользователю загрузить файл и распечатать его.

3

Со всей серьезностью, я думаю, что лучшим вариантом является подождать, пока Silverlight 4, если ваш клиент может так долго ждать. Я видел много шума о SL 4, поддерживающих печать на твиттере, хотя это не официальный. Я подождал бы PDC через несколько недель и посмотрел бы, будут ли какие-либо биты Silverlight использоваться для поддержки печати.

+0

Я согласен, что с PDC надвигающейся его стоит waitng, прежде чем на самом деле совершить в ходе действие. – AnthonyWJones

2

ТВН Я бы не использовать любой из этих вариантов: -

  1. Печать из браузера. Хорошо, если вы печатаете, скажите диаграмму или что-то еще, что хорошо масштабируется на одном листе бумаги. Мусор для чего-нибудь еще, особенно если у вас есть прокручиваемый контент.

  2. WriteableBitmap.Я не вижу, чтобы клиентское решение было приемлемым для пользователя. Пожалуйста, сохраните это, а затем распечатайте его. Это может быть сделано для работы отскакивания от сервера, но будет плохо для использования полосы пропускания (пропускная способность импортируется правильно, потому что в хорошо подключенной интранете вы не будете использовать Silverlight?).

  3. Отправка XAML серверу для рендеринга. Неудивительно, что WPF XAML не SL XAML, где и как бы вы сделали привязку, зачем отправлять XAML вообще, так как сервер должен быть в значительной степени связан с этим, поэтому почему он не может содержать необходимый XAML , Или вы подумывали о отправке только чистого XAML со всеми необходимыми данными? Тем не менее его много сантехники необходимо в SL, что на самом деле не связано с SL.

  4. Использование Silverlight 4, возможно, что в недалеком будущем это был бы правильный выбор без проблем (лично я бы не задерживал дыхание), но сейчас SL4 не существует.

5-ый вариант

Место генерирующий отчет код на сервере и иметь Silverlight приложение информирует сервер о наборе данных, необходимых (не обязательно размещая данные лишь критерии, необходимые для получения доступа к правильным задавать). По моему опыту, прямые печати графических интерфейсов не особенно удовлетворительны, когда пользователю действительно нужна хорошая печатная форма данных.

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

Смежные вопросы