http://milaneze.com.br/post/2011/05/07/Screenshot-de-uma-pagina-web-com-Flash.aspx
É uma tristeza ter que dar um Print Screen para uma parte da janela do navegador, depois rolar mais um pouco e dar mais um Print Screen, assim sucessivamente até conseguir o screenshot de cada parte da página web. Depois ainda ter que juntar cada pedaço pra gerar uma imagem só para enviar, por exemplo, por e-mail. Triste. Encontrei alguns programas que executam essa tarefa muito bem, menos quando a página tem partes em Flash.
Esses programas geralmente renderizam a página e já criam a imagem da mesma. Geralmente o Flash leva um tempo a mais pra carregar, apesar de já estar renderizado pelo HTML. O resultado é que toda a página aparece já carregada, mas o Flash aparece em branco ou com o vídeo padrão antes de carregar.
Depois de pesquisar um pouco, cito abaixo quatro soluções para esses casos específicos.
Web Shot
Esse programa é muito bom e tem ferramentas que são gratuitas. Ele pode ser baixado no site abaixo:http://www.websitescreenshots.com/
O truque desse software é renderizar a página e esperar mais um tempo até o conteúdo em flash ser carregado para aí sim efetuar o screenshot. O padrão de espera é de 5 segundos, mas isso pode ser alterado na aba Process do programa. O grande problema nisso é que a ferramenta de renderização usada pelo programa não é tão rápida quanto o IE ou Firefox. Isso significa que 5 segundos de espera no Web Shot não é o mesmo que 5 segundos no Firefox, por exemplo. Na minha máquina (Core i3) 5 segundos no Firefox equivalem a 120 no Web Shot, o que é suficiente para carregar o conteúdo em Flash do FusionCharts. Dependendo da máquina em que for usado, algumas animações simplesmente não irão carregar totalmente e não adianta colocar mais tempo.
Screenshot Pimp
Esse é um add-on do Firefox que, entre outras funcionalidades, gera um screenshot da página. Ele e o FireShot são os únicos que encontrei que conseguem extrair todos os arquivos Flash na imagem, mesmo os que não estão na parte visível da página, apesar que em alguns lugares a imagem do Flash fica preta de qualquer maneira. Os outros add-ons (incluindo o PdfIt, que acho muito bom por gerar PDF também) geram as animações não visíveis na tela com tudo preto. Esse add-on pode ser baixado no link abaixo:https://addons.mozilla.org/pt-BR/firefox/addon/screenshot-pimp-screengrab-scr/
A vantagem dessa abordagem é que a página já está carregada, assim como as animações em Flash, assim a transformação da página em imagem (.jpg ou .png) é praticamente instantânea. Já a desvantagem é que é necessário o Firefox para funcionar, diferente do Web Shot que é para Windows e não depende de navegador. Além disso, nem toda página fica igual no Firefox e no IE (por descuido do desenvolvedor ou designer).
FireShot
Esse add-on é interessante porque anula esse problema que até o Screenshot Pimp tem às vezes: gerar as imagens do Flash como um retângulo preto (no Firefox 4 fica branco). A idéia dele é rolar a página, assim as imagens em Flash sempre serão tiradas na parte visível da página, evitando o erro de ficarem pretas. Outra vantagem é que ele pode ser encontrado para o IE, Firefox e Chrome.Ele pode ser encontrado na página dos criadores do plugin:
http://screenshot-program.com/fireshot/
Para Desenvolvedores .NET
Resolvi juntar os exemplos que vi na web e criar uma biblioteca .NET que facilitasse a vida de desenvolvedores que utilizam ASP.NET e querem criar um botão ou link em suas páginas para transformá-las em JPEG. Abaixo coloquei um link com um exemplo em ASP.NET 3.5 de como usar essa DLL:http://dl.dropbox.com/u/20361010/blog/pagescreenshot/PageToJpg.zip
Assim como o Web Shot, essa biblioteca usa um objeto (nesse caso, o WebBrowser) para renderizar a página e é necessário usar um tempo de espera para carregar o conteúdo em Flash. Os problemas descritos na parte do Web Shot são praticamente os mesmos aqui. Se a página não tiver conteúdo em Flash, tudo funciona bem.

Nenhum comentário:
Postar um comentário