Nagy méretű weblapok fotózása – Webpage Capture

Akinek kellett már dokumentálás vagy UI prototípus egyeztetés céljából weblapról képernyőképet készítenie, az tudja, hogy a feladat nem minden esetben egyszerű. Akkor nincs gond, ha az oldal kifér a képernyőre, de mi van akkor, ha függőlegesen csak három képernyőnyi scrollozás után lehet az oldal aljára érni? Ebben az esetben marad Nikhil Web Development Helpere vagy a print screenek egymás alá ragasztgatása. Mivel az előbbi elkezdett nem működni nálam, kénytelen voltam írni egy célalkalmazást.

Mivel évente kb. egy vastag kliens alkalmazást írok, úgy látszik ez lesz az idei termés, íme a Webpage Capture:

Webpage Capture

És íme a kimenet, egy fotó a Weblaborról 976 x 3565 pixel méretben:

WebpageCapture: Weblabor

Bár az alkalmazás egészen pofásra sikerült (a saját gyermek ugye :) ) és használhatóan is működik, azért van egy apró szépséghibája: mivel nem akartam P/Invoke-t használni, ezért inkább egy nem támogatott megoldást választottam a képernyőképek elkészítésére. A WebBrowser kontrollnak van egy DrawToBitmap metódusa, amely bár kiválóan működik, “supports the .NET Framework infrastructure and is not intended to be used directly from your code”.

A másik lényeges pont, hogy a DrawToBitmap azt rajzolja a bitmapbe, amit a WebBrowser kontroll éppen mutat, ezért a rajzolás előtt át kell méretezni a kontrollt akkorára, amekkora a weboldal. A dokumentum mérete pedig a WebBrowser.Document.Body.ScrollRectangle tulajdonságból derül ki.

Lényegében ennyi kódolás kellett a fenti alkalmazás elkészítéséhez, a többi sallang, ami viszont igazán kényelmesen használhatóvá tette, szinte összekattintgatható: a böngészőben korábban használt URL-ek felkínálása és automatikus kiegészítése, az utoljára használt mappa, URL és checkbox állapot felhasználónkénti elmentése, a mentési útvonal tallózása, a beágyazott erőforrásként tárolt ikonokkal ellátott gombok, progress bar és link a status barra, na és persze mindez egy kattintással admin jogok nélkül a webről települve és önmagát frissítve ClickOnce segítségével. Azt kell hogy mondjam, igazán jó dolgok vannak a Windows Formsban, amiket én fontosabbnak ítélek, mint a 3D-ben forgazható grafikonokat :)

Aki szeretné kipróbálni az alkalmazást, ide kattintson:

http://www.msdnkk.hu/Storage/balassy/Enclosures/WebpageCapture

Known issue: bizonyos weblapok (pl. index) esetén többször készül el a kimeneti fájl, mert valamilyen okból az oldal letöltését jelző esemény többször sül el. Mindez persze csak akkor idegesítő, ha a View after capture be van kapcsolva. Megoldás: kapcsoljuk ki :)



Balássy György (MS RD, ASP.NET MVP, MCTS)

Balássy György (MS RD, ASP.NET MVP, MCTS) Villamosmérnök, a BME Automatizálási és Alkalmazott Informatikai Tanszékén webportálok fejlesztését oktatja. 2000 óta foglalkozik a Microsoft .NET platformjával, melynek meghonosításában jelentős szerepet vállalt előadóként, konzulensként és A .NET Framework és programozása című könyv társszerzőjeként. Az MSDN Kompetencia Központon belül a Portál Technológiák Csoport vezetője, szakterülete web alapú rendszerek fejlesztése és üzemeltetése. 2004-ben Magyarországon elsőként kapta meg a Most Valuable Professional címet, majd 2005 óta a Microsoft magyarországi regionális igazgatója. Publikációi a Technet Magazinban, az MSDN Kompetencia Központ honlapján és szakmai blogjában olvashatóak.

2009.01.25. 18:47:27 | Permalink | Hozzászólások: 0 | Tárgyszavak: ,


  • Team Explorer jelszó nélkül, avagy a zaklatásmentes csapatmunka

    Kővári Bence A probléma mindennapi: TFS-t használ az ember verziókövetésre, projekt managementre, vagy akár csak dokumentumtárnak. Amíg mindez tartományon belül történik, addig nincs semmi gond. Talán már tudjátok ti is, hogy amennyiben a SharePoint, vagy a TFS szerver nevét nem teljes tartománynévvel (server.mydomain.hu), hanem csak a szerver nevével (server) adjátok hozzá a TeamExplorerhez, vagy nyitjátok meg böngészőben (http://server/) akkor a domaines jelszavatokkal a rendszer csendben autentikálja magát és zökkenőmentesen lehet dolgozni. Tovább »
  • Accelerators alapok (29:03)

    Fekete Krisztián Az Internet Explorer® 8 a Microsoft legújabb böngészője, amely több technológiai újdonságot sorakoztat fel. Ezek egyike az Accelerator, amelyet magyarul gyorssegédnek is mondunk. Ezek a gyorssegédek kiegészítő menü pontok formájában segítenek gyorsan végrehajtani a mindennapos böngészési feladatokat anélkül, hogy más webhelyekre kéne ellátogatnunk. Egyszerűen kiemelünk bármilyen szöveget egy weblapon, majd a szöveg fölött megjelenő kék Gyorssegéd ikonra kattintva – útvonalterveket kaphatunk, lefordíthatunk szavakat, elküldhetjük e-mailben a tartalmat másoknak, könnyedén kereshetünk és így tovább. Például az Internet Explorer® 8 „Keresés a Bing Maps térképein” gyorssegédje... Tovább »


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások