Convert a HTML Control (Div or Table) to an image using C#

后端 未结 6 1074
滥情空心
滥情空心 2020-12-14 03:52

Is it possible to convert a Html Control to an image in C#?

Is there any C# method where I can pass the Html Control object and return an image of that html control?

相关标签:
6条回答
  • 2020-12-14 04:09

    Consider this (untested!) library over at guangmingsoft called htmlsnapshot.

    add a reference to the htmlsnap2.dll

    There's a sample project there for download.

    Here's their sample code, lifted straight from that link:

    snap = new CHtmlSnapClass();
    snap.Url("www.google.com", "*")
    byte[] data = (byte[])snap.GetImageBytes(".jpg");
    //byte[] data = (byte[])snap.GetThumbImageBytes(".jpg", 100, 100, 1);
    
    
    FileStream fs = File.OpenWrite(@"c:\1.jpg");
    BinaryWriter br = new BinaryWriter(fs);
    br.Write(data);
    br.Close();
    fs.Close();
    

    Update If you wanted only a particular control, you could write yourself a page whose job is to re-render your target control as the only bits of HTML on the page.

    0 讨论(0)
  • 2020-12-14 04:12

    Yes. It can be easily done using the html2canvas method. html2canvas is used to take screenshots of the html elements. Yo can do this by simply adding the html div into an html modal and pass the modal id to the jquery function and call that jqueryy function in the button onclick. you can checkout this link to know more about the htm2canvas method

    0 讨论(0)
  • 2020-12-14 04:14

    We have used http://iecapt.sourceforge.net/ to convert HTML to image. You can try it out. It is available for FREE.

    0 讨论(0)
  • 2020-12-14 04:14

    The control you're describing has, as its output, HTML. That's all it does.

    Your problem is that you want to turn a snippet of HTML into an image. Rendering HTML is done by a browser - ASP.NET has basically nothing to do with how HTML is rendered by a client.

    Most .NET libraries that do this job (turning HTML into images) use IE to power the conversion. Some of those utilities include:

    1. Websites Screenshot - http://www.websitesscreenshot.com/
    2. The aforementioned htmlsnapshot - http://www.guangmingsoft.net/htmlsnapshot/help.htm
    3. Basically any HTML -> PDF library has this functionality, including ABCPdf - http://www.websupergoo.com/abcpdf-1.htm

    But the more basic answer to the question is that ASP.NET controls don't render to an image format. You'll have to do an IE screenshot of a page that has only that control (or HTML) on it.

    0 讨论(0)
  • 2020-12-14 04:19

    I haven't tried it myself, but something I've been meaning to take a look at that may help you is HTMLRenderer.

    0 讨论(0)
  • 2020-12-14 04:29

    You need to create a separate page which is to be converted into image and call it in iframe. Then Try following:
    http://articles.sitepoint.com/article/generating-asp-net-images-fly
    OR
    http://www.guangmingsoft.net/wordpress/convert-html-to-image-without-temporary-files-in-c/

    0 讨论(0)
提交回复
热议问题