Convertir la page web à l'image de ASP.NET
Je voudrais créer une fonction en C# qui prend une page web spécifique et se transforme en une image JPG à partir de l'intérieur ASP.NET. Je ne veux pas le faire par l'intermédiaire d'un tiers ou de la vignette de service que j'ai besoin de la totalité de l'image. Je suppose que j'aurais besoin de quelque sorte l'effet de levier du contrôle webbrowser de l'intérieur ASP.NET mais je ne peux pas voir où commencer. Quelqu'un aurait-il des exemples?
- Ce sera extrêmement difficile.
- Wow! Ce qu'est une grande question. Ma première réaction est d'utiliser le contrôle WebBrowser et l'utilisation de la DrawToBitmap méthode, mais que les documents membres de, "Cette méthode n'est pas pris en charge par ce contrôle." Oh, bien.
- J'ai trouvé ce lien, mais l'un mystère qu'il n'explique jamais comment obtenir le fameux contrôle de travailler à partir de ASP.NET. beansoftware.com/ASP.NET-Tutorials/...
- Donc je suppose que DrawToBitmap œuvres. Je devrais obtenir des points pour cela! :O)
- Précisément ce qui est en cours d'arrêt de travail?
- J'ai testé le code de l'article et il fonctionne très bien. Le DrawToBitmap méthode fonctionne bien.
- Difficile, c'est un état d'esprit. Comment pouvez-vous dire qu'une chose est difficile, à moins que vous essayez?
Vous devez vous connecter pour publier un commentaire.
Ok, c'était plutôt facile quand j'ai combiné plusieurs solutions:
Ces solutions m'a donné un thread-safe façon d'utiliser le contrôle WebBrowser à partir de ASP.NET:
http://www.beansoftware.com/ASP.NET-Tutorials/Get-Web-Site-Thumbnail-Image.aspx
http://www.eggheadcafe.com/tutorials/aspnet/b7cce396-e2b3-42d7-9571-cdc4eb38f3c1/build-a-selfcaching-asp.aspx
Cette solution m'a donné un moyen pour convertir BMP en JPG:
Bmp en jpg/png en C#
J'ai simplement adapté le code et mettez le code suivant dans un .cs:
Et pouvez l'appeler comme suit:
Il fonctionne à la fois avec un fichier et un ruisseau. Assurez-vous d'ajouter une référence à System.De Windows.Les formes de votre ASP.NET projet. J'espère que cette aide.
Mise à JOUR: j'ai mis à jour le code pour inclure la capacité de capturer la page entière et ne nécessite aucun paramétrage particulier de ne capturer qu'une partie de cela.
Application.DoEvents();
nécessaire?Voici ma mise en œuvre à l'aide de méthodes d'extension et de la tâche de l'usine au lieu de filetage:
Bonne solution par Monsieur Chat l'Homme N'.
J'ai besoin d'ajouter une ligne à supprimer certaines erreurs qui sont apparues dans certaines pages web
(avec l'aide d'un super collègue de la mine)
...
Merci Monsieur Ne
Il y a un bon article de Pierre Bromberg sur ce sujet ici. Sa solution ne semble faire ce qu'il vous faut...
Vous pouvez utiliser WatiN pour ouvrir une nouvelle fenêtre de navigateur, puis la capture de l'écran et de la culture de manière appropriée.
La solution est parfait, juste besoin d'une fixation dans la ligne qui définit la LARGEUR de l'image. Pour les pages avec une GRANDE HAUTEUR, il ne permet pas de définir la LARGEUR de la bonne manière:
Et pour ajouter une référence à System.De Windows.Les formulaires, vous devez le faire dans .NET-onglet d'AJOUTER une RÉFÉRENCE au lieu de COM -onglet.