2011-09-11 9 views
9

Ho fatto qualche ricerca per provare a generare file jpg da una pagina html e ho trovato una soluzione chiamata IECapt o qualcosa di simile che richiede IE sul server per funzionare ... non quello che voglio.html a jpg con C#

Ecco cosa sto cercando di fare: generare un'immagine jpg da una pagina html (la pagina html sarà solo testo) e quindi mettere una filigrana sopra il jpg.

In sostanza, sto creando un "campione" che i miei utenti possono vedere che sarà solo un'immagine creata da html (sempre solo testo semplice). Quel campione dovrebbe avere una filigrana su di esso come menzionato sopra. Ci sono delle librerie disponibili per farlo con C#? Quello che mi piacerebbe è passare l'url della mia pagina che voglio convertire in un metodo e magari il percorso di salvataggio del jpg, quindi far funzionare la sua magia e convertire quell'url in un'immagine jpg, lanciare una filigrana it, then say hora!

Modifica 1

l'aggiunta di un po 'di codice della risposta below..can't ottenere la mia testa intorno a questo:

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"); 


Edit 2

questo funziona .

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

Vedere HTML Renderer [Genera immagine da markup HTML] (https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation) per la documentazione completa. – Arthur

risposta

10

È possibile utilizzare this HtmlRenderer class.

+0

La tua risposta mi ha appena salvato un carico di stress. n utilizzando una soluzione orribile che ha una dipendenza da IE. Grazie :) – scartag

+0

Sto guardando questa soluzione, ma non vedo alcuna opzione per salvare l'HTML reso come un'immagine. Ho scaricato l'exe di esempio e sto giocando con esso ora, ma finora, non riesco a trovare nulla su come salvare l'html generato su un'immagine .... eventuali puntatori? –

+1

@Christopher: crea un oggetto 'Bitmap', quindi usa' HtmlRenderer' per eseguire il rendering in 'Graphics.FromImage (...)'. – SLaks

0

Non ho provato questo, ma si può provare a utilizzare Control.DrawToBitmap(). Per disegnare la filigrana si può andare in questo modo:

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

Ma lui non vuole IE. – SLaks

+0

Forse è possibile farlo con WebKit o Gecko. –

+0

come può aiutarmi a convertire l'html raw in un'immagine? –