2011-09-11 14 views
9

Zrobiłem kilka wyszukiwania, aby spróbować i generować pliki jpg ze strony html i znalazłem jedno rozwiązanie o nazwie IECapt lub coś podobnego, który wymaga IE na serwerze do pracy ... nie, co chcę.html do jpg z C#

Oto, co chcę zrobić: Wygeneruj obraz jpg ze strony html (strona html będzie po prostu tekstem), a następnie umieść znak wodny na jpg.

Zasadniczo tworzę "próbkę", którą moi użytkownicy mogą zobaczyć, który będzie po prostu obrazem utworzonym z html (ponownie tylko tekstem prostym). Ta próbka powinna mieć na sobie znak wodny, jak wspomniano powyżej. Czy są dostępne jakieś biblioteki z C#? Chciałbym przekazać w adresie URL strony, którą chcę przekonwertować na metodę i być może ścieżkę zapisu jpg, a następnie sprawić, by działała ona magicznie i przekształcić ten adres URL w obraz jpg, rzucić znak wodny na to, powiedzmy, hooray!

Edycja 1

dodanie kodu z odpowiedzi below..can't uzyskać moja głowa wokół to:

InitialContainer c = new InitialContainer("<html><body><div align=\"center\">This is my html, does it work here?</div></body></html>"); 
Bitmap m_Bitmap = new Bitmap(400, 700); 
c.Paint(Graphics.FromImage(m_Bitmap)); 
m_Bitmap.Save(@"C:\test\Test.bmp"); 


Edycja 2

to działa .

Bitmap m_Bitmap = new Bitmap(400, 600); 
PointF point = new PointF(0,0); 
HtmlRenderer.Render(Graphics.FromImage(m_Bitmap), "<html><body><div align=\"center\">This is my html, does it work here?</div></body></html>",point, 500); 
m_Bitmap.Save(@"C:\test\Test.bmp"); 
+0

Zobacz HTML Renderer [Generowanie obrazu ze znaczników HTML] (https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation) w celu uzyskania pełnej dokumentacji. – Arthur

Odpowiedz

10

Można użyć this HtmlRenderer class.

+0

Twoja odpowiedź właśnie uratowała mnie przed obciążeniem. n używając strasznego rozwiązania, które ma zależność od IE. Dzięki :) – scartag

+0

Patrzę na to rozwiązanie, ale nie widzę żadnych opcji, aby zapisać renderowany HTML jako obraz. Pobrałem próbkę exe i bawię się nią teraz, ale jak dotąd nie mogę znaleźć nic na temat zapisania wygenerowanego html na obrazku ... żadnych wskazówek? –

+1

@ Christopher: Utwórz obiekt 'Bitmap', a następnie użyj' HtmlRenderer' do renderowania do 'Graphics.FromImage (...)'. – SLaks

0

nie próbowałem tego, ale można spróbować użyć Control.DrawToBitmap(). Aby narysować znak wodny można przejść tak:

Image img; //the html image. 
Image watermark; //the watermark image. 
Point location; //where to draw the watermark on the html image. 

Graphics g = Graphics.FromImage(img); 
g.DrawImage(watermark, location); 
+1

Ale on nie chce IE. – SLaks

+0

Być może jest to możliwe w przypadku WebKit lub Gecko. –

+0

jak to pomoże mi przekonwertować surowy html na obrazek? –