2010-03-18 1 views
2

Я перестраиваю приложение для Windows, которое нужно портировать в Интернет. Одной из проблем, вызывающих беспокойство, является «печать».Печать с веб-страниц (особенно отчетов)

Приложение требует интенсивной обработки данных и создания сложных отчетов. Приложение exstwhile windows использует преимущества API-интерфейсов принтера и обеспечивает надёжный контроль над пользователями. Он поддерживает такие функции, как разрыв страницы, предотвращает печать на печатных частях листа (например, фирменный бланк), выбор макетов и ориентации и т. Д. Обратите внимание, что эти настройки не выполняются только во время печати, они иногда являются частью определения отчета.

Из того, что я знаю, мы не можем иметь такой контроль во время печати веб-страниц. Я нахожусь в процессе определения вариантов в моем распоряжении. В то время как я предпочитаю первый заглянуть в то, что поможет мне напечатать из сырых веб-страниц, следующее другие мысли:

  1. Поскольку отчеты могут быть экспортированы в .xls & версии .pdf, позволяет пользователю загружать один и печатать напрямую , Это, однако, ограничивает мое решение областью применения, которая имеет функцию экспорта.
  2. Используйте Silverlight (4.0) для определения макета отчета и печати. Я думаю, что Silverlight 4.0 (в настоящее время в бета-версии) обеспечивает адекватный контроль над принтером. Я до сих пор избегал необходимости любого плагина RIA.
  3. Тщательно создавать отчеты в Интернете с фиксированными размерами. Я не знаю, как далеко это пройдет.

Просьба поделиться практикой, которая может быть легко применена в моем сценарии.

ответ

3

Для представления в прошлом в Интернете, используя .NET, мне нравится создавать файлы PDF, Excel, Word или CSV. Мне очень нравится iTextSharp, который позволяет создавать PDF-файлы.

Слово может принимать HTML, так что это обычно легко цитируется. Для большего контроля вы можете попасть в Word interops http://nishantrana.wordpress.com/2007/11/03/creating-word-document-using-c/, но они оставили меня разочарованным. Не для реализации, но я чувствовал, что чистка была бедной.

CSV отлично подходят для сырых дампов данных и все.

Для HTML вы можете получить хороший контроль, используя style sheet targeted to print media. Есть только определенные вещи, которые вы не можете контролировать, например, заголовок и нижний колонтитул браузера.

+0

несколько выбора битов на таблицы стилей для печатных СМИ: http://www.alistapart.com/articles/boom/ http://www.alistapart.com/articles/goingtoprint/ HTTP: // WWW .alistapart.com/articles/printtopreview/ –

+0

Спасибо. Я попробую это первым и посмотрю, как далеко я могу идти. – Kabeer

0

Flash также имеет лучшие средства управления печатью, чем обычный HTML, хотя вы, возможно, не знаете этого, так как эти функции редко используются разработчиками Flash. В наши дни почти все должны иметь Flash, поэтому он не похож на Silverlight, где есть хорошие шансы на то, что кто-то должен установить плагин (вдвойне для бета-версии). Я не уверен, как API-интерфейсы Flash-принтера сравниваются с API-интерфейсами принтера Silverlight, и если они дают вам необходимый уровень контроля, но их документация является общедоступной, поэтому вы можете изучить ее.

Также я думаю, что экспорт в PDF - хорошая идея. Я не понимаю, почему вы не можете распространять это, чтобы охватить все места, которые должны были бы печатать отчет. В основном вместо того, чтобы печатать прямо из приложения Windows, работающего на рабочем столе, на вашем сервере работает тот же самый точный код и генерирует PDF-файл, который они могут распечатать самостоятельно.

0

Я не думаю, что вам будет очень повезло, если вы захотите сделать это с помощью raw HTML. Для одного из наших клиентов мы отправились с маршрутом «генерировать PDF», и это получилось достаточно хорошо. PDF-файлы имеют дополнительное преимущество, что вы не должны распечатать их: вы можете просто отправить их в адрес босса/бухгалтера/независимо от экономии бумаги.

0

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

С помощью HTML вы можете воспользоваться настройками браузера пользователя для размера страницы, поля и того, как будут выполняться разрывы страниц.