2014-10-09 2 views
0

HtmlRenderer을 사용하여 HTML을 이미지로 변환하려고합니다. 이 페이지에는 2 개의 이미지가 있으며, 하나의 이미지는 다른 이미지의 상단에 있습니다. 다음 코드를 사용해 보았습니다HtmlRenderer을 사용하여 HTML을 이미지로 변환

Bitmap m_Bitmap = new Bitmap(700, 900); 
PointF point = new PointF(0, 0); 
SizeF maxSize = new System.Drawing.SizeF(800, 1000); 
string html = "<html><head></head><body> Test<div style=\"position: relative; left: 0; top: 0;\"><img style=\"position: relative; top: 0; left: 0;\" src=\"file:///C:/Users/crakhuc/Desktop/HappyBirthday.jpg\"><img style=\"position: absolute; left: 199px; top: 293px;\" src=\"file:///C:/Users/crakhuc/Desktop/Small.jpg\"></div><br></body></html>"; 
HtmlRenderer.HtmlRender.Render(Graphics.FromImage(m_Bitmap),html,point, maxSize);  
m_Bitmap.Save(@"C:\Test.png", ImageFormat.Png); 

이 문제는 두 번째 이미지가 첫 번째 이미지 맨 위에 오는 것이 아니라 첫 번째 이미지의 맨 아래에 오는 문제입니다.

+1

특정 질문 (아래 답변 제공)과 관계없이 HtmlRender.RenderToImage (..) 메소드를 사용하는 것이 더 좋습니다. 더 나은 API를 사용하고 GDI 텍스트 렌더링을 올바르게 처리하려면 [HTML 마크 업에서 이미지 생성] (https://htmlrenderer.codeplex.com/wikipage?title=Image%20generation&referringTitle=Home)을 참조하십시오. – Arthur

답변

1

HTML Renderer는 현재 상대/절대 레이아웃을 지원하지 않습니다.

원하는대로 이미지 중 하나를 배경 이미지로 사용하거나 HTML을 2 부로 나눌 수 있습니다. 파트 1의 결과 이미지를 사용하여 파트 2 렌더링의 기초로 사용할 수 있습니다.

참조 용으로 위키 페이지를 사용할 수 있습니다 : Generate image from HTML markup.

0

HTML이 얼마나 복잡한 지 잘 모르겠습니다. HtmlRenderer을 사용하면 도움이 될만한 대안을 제공 할 수 있습니다. html이 실제로 복잡하고 외부 리소스를 참조하는 경우 Html to Pdf 렌더러를 사용하여 PDF를 이미지로 변환 할 수 있습니다.