Конвертировать HTML-страницу в изображение, используя Javascript
Привет,
РЕДАКТИРОВАТЬ: Я хочу добиться этого без использования какого-либо программного обеспечения сторонних производителей. Мое приложение является продуктом SAP, и я не могу обратиться к каждому клиенту и установить это программное обеспечение в его системе.
У меня есть следующий сценарий..
На моем веб-сайте есть кнопка (конечно, это бизнес-приложение) с именем "Save as image"
.so, когда пользователь нажимает эту кнопку, содержимое страницы должно быть преобразовано в файл изображения и сохранено в его системе.
Можем ли мы достичь этого с помощью javascript или jquery?
Если мы не можем сделать это в javascript, можем ли мы сделать это в SAP BSP, так как мое приложение разрабатывается в SAP BSP?
Я уже искал на этом сайте и нашел одно решение, которое работает только в Firefox Extesnion. Но мне нужно кросс-браузерное решение, которое должно работать на IE,Chromer и т. Д.
3 ответа
Способ сделать это будет сделать HTML-страницу в скрытом <canvas>
элемент, а затем сохранить содержимое холста как изображение.
Это возможно, но у вас не будет идеального рендеринга или решения, работающего на устаревших браузерах.
Посмотри пожалуйста
/questions/39043323/vizualizatsiya-elementov-html-v-canvas/39043344#39043344
для дополнительной информации.
Либо отправьте URL-адрес страницы без состояния на серверную часть, где браузер без монитора отображает страницу и делает снимок экрана с помощью автоматизации Selenium. Если страница общедоступна, некоторые веб-сервисы также существуют для этого.
Одно простое, но частичное решение IE, оно использует ActiveX, а не кроссбраузер, и общее, немного более громоздкое
IE решение
function printScreen(){
var oWordBasic;
if (window.ActiveXObject){
oWordBasic = new ActiveXObject("Word.Basic");
oWordBasic.SendKeys('%{1068}');
oWordBasic.SendKeys('%{PRTSC}'); //or if the above doesnt work..
//save or transfer the clipboard contensts
}
}
Общее решение:
Используйте утилиту захвата экрана, такую как Gadwin PrintScreen http://www.gadwin.com/printscreen/, она предназначена для Windows, но я уверен, что есть что-то подобное для Linux и Mac. Вы можете определить горячую клавишу и позволить этому сохранить изображение в фиксированном месте с автонумерацией. Программу устанавливать не нужно, она переносная, поэтому может находиться на сетевом ресурсе.
Вы также можете попытаться создать java-апплет или jar-файл, включенный в сайт, который бы захватывал некоторую часть экрана или браузера. Я видел механизм для совместного использования экрана в режиме реального времени на основе загруженных файлов JAR, но я не видел код.
вот несколько библиотек для java html в конвертацию изображений http://code.google.com/p/java-html2image/
heres simmilar тема Как захватить выбранный экран другого приложения, используя Java?