Заснемане на екранна снимка на уебсайт на клиента (Javascript или flash)

Има ли някакъв метод за издаване на екранна снимка (само съдържание на прозореца на браузъра) от браузъра с javascript или вграден флаш обект и т.н., така че изображение с пълно качество на съдържанието на страницата да бъде запазено или отпечатано или алтернатива Приближаване.

Имам уеб приложение (asp.net 3.5) с google maps и други ajax операции от страна на клиента като персонализиран сървър за плочки. Опитвам се да внедря начин потребителят да отпечатва качествени снимки на уеб страницата.

Използвал съм основния Window.Print(), но както в IE, така и в FF има много артефакти в картите на Google и някои елементи, като изскачащото балонче, не се отпечатват. Експериментирах със запазване на pdf чрез cutepdf (само за да публикувам пример тук) и качеството чрез window.print() също е ниско.

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

Разгледайте този изтеглен примерен zip файл (4mb) с:

  1. Примерна екранна снимка с помощта на FireShot (пример за това, което искам да постигна чрез бутон html/JS на страницата)
  2. Firefox Window.Print() резултат (cutepdf се използва за запазване като pdf)
  3. Резултат от IE Window.Print() (cutepdf се използва за запазване като pdf)

забележете в 2,3 малкото балонче не се отпечатва дори когато е отворено.

Засега добавих функцията на моя сайт за преминаване на цял екран и насочване на потребителя да направи екранна снимка или да извика функцията window.print().

Все още търся метод за отпечатване/заснемане на моята страница.

има ли флаш/activex контроли, които мога да включа в моята страница и чрез тях да осигуря механизъм за качествен печат?

Благодаря отново за цялата помощ, но все още имам нужда от още. :)

Благодаря ви предварително.

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

person Community    schedule 25.11.2009    source източник
comment
Някакви идеи защо балонът изчезва при печат. все пак е само html   -  person Vaibhav Garg    schedule 25.11.2009


Отговори (5)


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

person Rex M    schedule 25.11.2009
comment
това би станало прекалено сложно. специално с google maps. Може да не е законно да извличате плочките на сървъра. Както и да е, в сравнение с този метод, мисля, че мога да оставя нормалния метод за печат със съвет да кажа на потребителя, че заснемането на екрана ще доведе до по-високо качество... - person Vaibhav Garg; 25.11.2009

Ще отидете на цялата тази работа само за да откриете, че просто приложение като Snagit ще свърши работата. Създаване на приставка за заснемане на екран SnagIt

person Community    schedule 25.11.2009
comment
не го разбирам snagit не е ли софтуер, който трябва да се инсталира на клиента? Не може да се вгради в уеб страница? - person Vaibhav Garg; 25.11.2009
comment
Съмнявам се, че някога ще получите вграден обект, за да имате достъп до платното на браузъра и да го направите съвместим с различни браузъри и различни операционни системи. Имате нужда от нещо, което работи с достатъчен достъп до операционната система, за да вземете платното. Казвате, че сте пробвали cutepdf. Е, това също не е вградено. - person ; 26.11.2009
comment
Съжалявам, използвах cutepdf само за да видя качеството на печат от командата window.print() и да публикувам pdf като проба тук, за да покажа липсващия информационен прозорец от печат и други артефакти - person Vaibhav Garg; 27.11.2009

Google разполага и с API за статични карти, който може да ви даде добри резултати. Аз самият го разгледах веднъж и само не го използвах, тъй като (по онова време) имаше ограничения за това колко точки могат да поддържат в полилиния.

person Paul Degnan    schedule 15.12.2009
comment
Благодаря за връзката. Ограничението на точките не би трябвало да е проблем, тъй като използвам персонализиран слой с плочки. Ще публикувам отзиви, ако ги намеря за полезни - person Vaibhav Garg; 16.12.2009

Не мисля, че това е възможно. Би било доста голям риск за сигурността да можете да заснемете екрана на потребителя чрез скриптове (представете си, че лоши сайтове улавят информация от екрана).

person Nate B    schedule 25.11.2009
comment
Не искам да го предавам на сървъра, но позволявам на потребителя да запази изображението и по-късно да го отпечата. точно това, което прави window.print(), но с по-високо качество - person Vaibhav Garg; 25.11.2009

Не, няма, въпреки че би било доста полезно понякога за докладване на грешки и т.н.

Вероятно ще получите най-добрия резултат, като създадете отделна версия на страницата като PDF, която се генерира. Това не е бързо решение във всички случаи, но ще получите превъзходно качество на печат и пълен контрол над всичко. Частта с картата вероятно ще бъде малко трудна, тъй като трябва да получите картата като растерно изображение на сървъра по някакъв начин и ако не е във флаш на клиента, не знам как бихте направили това.

person svinto    schedule 16.12.2009