/HTML-Renderer

Cross framework (WinForms/WPF/PDF/Metro/Mono/etc.), Multipurpose (UI Controls / Image generation / PDF generation / etc.), 100% managed (C#), High performance HTML Rendering library.

Primary LanguageC#BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Changes from original repo

Primary goal: use HtmlRenderer for creating GUI with HtmlRenderer.SDL2-CS

  • Rewritten BackgroundImageDrawHandler:
    • Breaking changes: In adapters you needs to remake RGraphics.GetTextureBrush() - dstRect now not image size, that can be gotted from image. This is rectangle which needs to be filled with image from dstRect.Location with dstRect.Size multiple to image size.
    • background-image + border-radius now calls RGraphics.DrawPath(RBrush brush, RGraphicsPath path) with brush from RGraphics.GetTextureBrush()
    • background-position works as should.
  • CSS renames:
    • corner-radius, corner-nw-radius, corner-ne-radius, corner-se-radius, corner-sw-radius renamed to border-radius, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius

In Progress:

  • respect height & width, especially for "fullscreen" div (height:100%, width:100%)
  • CssBoxTable - replace for CssLayoutEngineTable with working complex colspan & rowspan layout
  • add "Min/Max+Height/Width" css property - currently used in CssBoxTable
  • DOMDocument + DOMElement + DOMStyle - wrappers for DHTML-like operations.
  • :hover

HTML Renderer

Help Wanted

  • Looking for a contributor(s) to take this project forward as I'm unable to continue supporting it.
  • Contribute directly to the repository and update nuget packages.

Documentation, Discussion and Issue tracking is on CodePlex.

Cross framework (WinForms/WPF/PDF/Metro/Mono/etc.), Multipurpose (UI Controls / Image generation / PDF generation / etc.), 100% managed (C#), High performance HTML Rendering library.

The library is 100% managed C# code without any external dependencies (no WebBrowser control, ActiveX / COM or MSHTML dll), the only requirement is .NET 2.0 or higher.

Download the Demo application to explore HTML Renderer capabilities.

Renderer.png

Features and Benefits

  • Extensive HTML 4.01 and CSS level 2 specifications support.
  • Support separating CSS from HTML by loading stylesheet code separately.
  • Support text selection, copy-paste and context menu.
  • WinForms controls: HtmlPanel, HtmlLabel and HtmlToolTip.
  • WPF controls: HtmlPanel and HtmlLabel.
  • Works on Mono.
  • Create images/PDFs from HTML snippets.
  • Handles "real world" malformed HTML, it doesn't have to be XHTML.
  • 100% managed code and no external dependencies.
  • Supports .NET 2.0 or higher including Client Profile.
  • Lightweight, just two DLLs (~300K).
  • High performance and low memory footprint.
  • Extendable and configurable.
  • Powerful Demo application to explore and learn the library.

WinForms/WPF controls

  • HtmlPanel - The full power of HTML control build to replace WebBrowser control, accepts HTML, text selection, scrollbars, link click intercept, image load intercept and much more.
  • HtmlLabel - As WinForms label but accepts HTML, text selection, auto-size capabilities, transparent background and more.
  • HtmlToolTip - As WinForms ToolTip control but accepts HTML and ability to handle links (WinForms only).

Sample application's

  • Render HTML content generated by rich web editors like forums, blogs, etc.
  • Render Office documents converted to HTML.
  • Create WinForms UI that requires text selection with clipboard support.
  • Create images from HTML code snippets.
  • Create PDF document from HTML code snippets.

NuGet packages

HTML Renderer on my blog

TheArtOfDev / HTML Renderer