Функция Printscreen, желаемая из веб-управления в браузере - PullRequest
1 голос
/ 01 марта 2012

Все,

У меня есть требование, чтобы пользователи нашей веб-страницы могли загружать JPEG-изображения карт Bing, которые мы разместили на нашей веб-странице dot net aspx для моделирования лесных пожаров.На рассматриваемой странице в настоящее время отображается карта Bing и до 96 фигур в таком количестве слоев, что для полной загрузки может потребоваться до 20 секунд.Я мог бы поместить все эти фигуры в один слой, если бы это помогло - но я не уверен, что это будет, и я подумал, что сначала спрошу здесь.

По-видимому, любые "сложные" действия на стороне клиента (например, ALT-экрана печати, печати с веб-страницы, mwsnap3 или других решений сторонних производителей) будет недостаточно, поэтому мне предлагается добавить на страницу кнопку, которая будет загружать (или делать доступным) документ / изображение в формате jpeg при его нажатии.на странице.

Я начал с отличной темы на Преобразование веб-страницы в изображение из ASP.NET ., что на самом деле близко к тому, что я хочу, но страница отображается в браузере. Переход = WebBrowserReadyState.Complete, который запускается до того, как мои формы загружаются на холст Bing.Я попытался отобразить страницу в событии DocumentTitleChanged (а затем попытался изменить заголовок, когда загрузка формы завершилась), но это также не сработало.

Я попытался принудительно использовать символ «Печать экрана» с помощью JavaScript(см. Можно ли программно моделировать события нажатия клавиш? ), но это переводится в запятую (десятичное число 44) и работает не так, как ожидалось.

Я также вижу, что HTLM5 имеет некоторыеподдержка этого (http://www.nihilogic.dk/labs/canvas2image), но хотя это работало в FireFox, оно не работало в IE, который является предпочтительным браузером.Я также хочу запустить это на мобильных устройствах, которые могут также не поддерживать HTML5 в течение некоторого времени.

У меня есть несколько вопросов:

1 - Есть ли другой (простой) способ распечататьсодержимое веб-страницы, которую мне не хватает?

2 - Есть ли какое-либо другое событие WebBrowser, которое я могу запустить, что будет иметь больше смысла)?

3 - Поможет ли мне, если я укажу какой-нибудь другой элемент управления, а затем наложу карты и формы на этот элемент управления для последующей печати?

4 - идет ли это вразрез с просмотром веб-страниц и это просто плохая идея (кажется, что если я могу вызвать «экран печати», то злые веб-сайты могут вызвать последовательность кнопок Ctrl-Alt-Delete)?

Спасибо - Стив

1 Ответ

0 голосов
/ 01 марта 2012

Это может быть не тот подход, который вам нужен, поскольку он потребует от вас повторить многие функции, которые у вас уже есть, иным способом, но единственный действительно полный способ доказать это - получить карту в виде изображения из bing отображает службу статических изображений и использует GDI + для самостоятельного рисования на карте, а затем просто передает это изображение непосредственно пользователю. Обходит все проблемы с браузером, но изрядное количество работы в зависимости от ваших требований:

http://rbrundritt.wordpress.com/2009/02/22/drawing-routes-with-the-ve-web-service/

...