2009-11-25 4 views
2

Есть ли способ для снятия захвата экрана (только содержимого окна браузера) из браузера с помощью javascript или встроенного флеш-объекта и т. Д., Чтобы изображение полного качества содержимое страницы сохраняется или печатается или альтернативный подход.Захват скриншота сайта на клиенте (Javascript или flash)

У меня есть веб-приложение (asp.net 3.5) с картами google и другими операционными операциями ajax, как пользовательский сервер плитки. Я пытаюсь реализовать способ для пользователя печатать качественные снимки веб-страницы.

Я использовал базовый Window.Print(), но в IE и FF есть много артефактов на картах google, а некоторые элементы, такие как всплывающий пузырь, не печатаются. Я экспериментировал с сохранением pdf thru cutepdf (просто для публикации примера здесь), а качество через window.print() тоже низкое.

Например, скриншот с дополнением FireShot идеален и что я хочу, чтобы клиент имел. однако это только FF, и я не могу попросить клиентов установить в браузерах элементы addons/activex.

Посмотрите на эту загрузку example zip file(4mb) с:

  1. Пример снимка экрана с использованием FireShot (пример того, что я хочу достичь через кнопку HTML/JS с в страницы)
  2. Firefox window.print() результат (CutePDF используется для сохранения в формате PDF)
  3. IE window.print результата() (CutePDF используется для сохранения в формате PDF)

примечание в 2,3 маленький пузырь не печатается даже при открытии.

На данный момент я добавил функцию на свой сайт, чтобы перейти в полноэкранный режим, и попросит пользователя сделать снимок экрана или вызвать функцию window.print().

Я все еще ищу способ печати/захвата моей страницы.

Есть ли элементы управления flash/activex, которые я могу включить в свою страницу, и через них обеспечить качественный механизм печати?

Еще раз спасибо за помощь, но мне все еще нужно больше. :)

Заранее спасибо.

http://rapidshare.com/files/311849636/Print_examples.zip.html 
+0

Любые идеи о том, почему пузырь исчезает в печати. в конце концов это только html –

ответ

1

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

+0

, который будет слишком сложным. специально с картами google. Возможно, нецелесообразно извлекать плитки на сервере. Во всяком случае, по сравнению с этим методом, я думаю, что могу оставить обычный метод печати на месте с подсказкой, чтобы сообщить пользователю, что экран захвата будет производить более высокое качество ... –

0

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

+0

Я не хочу передавать его на сервер, но пусть пользователь сохранит изображение и затем распечатает. просто то, что делает window.print(), но с более высоким качеством –

2

Вы пойдете на все, что работает, только чтобы найти, что простое приложение, такое как Snagit, выполнит эту работу.Building a SnagIt Screen Capture Plugin

+0

+1 Для Snagit. Мне это нравится. – monksy

+3

Я не понимаю. isnt snagit программное обеспечение, которое должно быть установлено на клиенте? Он не может быть встроен в веб-страницу? –

+1

Я сомневаюсь, что вы когда-либо получите внедренный объект, чтобы иметь возможность доступа к холсту браузера и сделать его кросс-браузерным, совместимым с несколькими ОС. Вам нужно что-то, что работает с достаточным доступом к ОС, чтобы захватить холст. Вы говорите, что попробовали cutepdf. Ну, это тоже не встроено. – Gerard

1

У Google также есть Static Maps API, который может дать вам хорошие результаты. Я сам заглянул в нее, и с тех пор я не занимался этим (в то время) были ограничения на количество точек, которые они могли бы поддерживать в полилинии.

+0

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

0

Нет, нет, хотя время от времени было бы очень полезно для сообщения об ошибках и т. Д.

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

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