Как печатать отчеты в Silverlight 4

Мне интересно, есть ли что-нибудь встроенное в Silverlight или, возможно, на C #, позволяющее печатать отчеты?

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

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

Так что, если у кого-то есть какие-то идеи, я мог бы попробовать, это было бы очень признательно!


person AmbiguousX    schedule 18.05.2010    source источник


Ответы (2)


Silverlight имеет встроенную поддержку растровой печати, начиная с версии 4. Вы можете найти полезную информацию в блоге Шона: http://wildermuth.com/2009/11/27/Silverlight_4_s_Printing_Support

Как я уже сказал, он основан только на растровых изображениях, но с недостатками, которые связаны с растровыми изображениями (отсутствие надлежащего масштабирования и т. Д.).

Еще один приятный обходной путь, который мне нравится, - это преобразование данных, которые вы хотите распечатать, в PDF-файл на стороне сервера. Вы можете разместить веб-службу на сервере, отправлять данные для печати с клиента на сервер через эту службу, а затем использовать сервер, например. Acrobat Distiller или любая другая утилита для печати PDF-файлов, которая вам нравится, для создания PDF-файла. Когда создание PDF-файла завершено, сервер отправляет клиенту URL-адрес, указывающий на вновь созданный PDF-файл. Затем в приложении Silverlight вы можете просто открыть этот URL-адрес, например, в новом окне. Однако это скорее экспорт PDF, чем печать, так как PDF будет открыт только на стороне клиента, но не распечатан автоматически.

Напротив, создание PDF на стороне клиента невозможно по умолчанию в Silverlight. Однако существуют сторонние библиотеки, которые могут это сделать.

Привет, Алекс

person alexander.biskop    schedule 18.05.2010
comment
На данном этапе я был бы полностью доволен печатью на основе растровых изображений. Но упомянутый метод генерации PDF выглядит очень неплохо. Если я правильно понимаю, это должно позволить пользователю выбрать: сохранить сгенерированный отчет или распечатать его, что в конечном итоге было бы тем, что я хотел бы включить в приложение. Я обязательно изучу ваше решение дальше, но, похоже, это именно то, что мне нужно! Большое тебе спасибо! - person AmbiguousX; 18.05.2010

Вы также можете ознакомиться с простым автором отчетов для Silverlight 4 Пита Брауна: http://10rem.net/blog/2010/05/09/creating-a-simple-report-writer-in-silverlight-4

Более полнофункциональным, но тяжелым (требуется серверная сторона ASP.NET) вариантом является Perpetuum's SharpShooter: http://www.perpetuumsoft.com/Report-Sharp-Shooter-for-Silverlight.aspx

person James Cadd    schedule 19.05.2010