AngleSharp.Renderer extends the core AngleSharp library with some more powerful rendering capabilities. This repository is the home of the source for the AngleSharp.Renderer NuGet package.
The project now contains a first draft implementation with:
- A backend-agnostic rendering core and display-list model
- A SkiaSharp backend that renders PNG output
- A basic DOM-driven text layout pass (block flow, heading scaling, word wrapping)
This is an initial vertical slice and not a full browser-grade layout engine yet.
using AngleSharp;
using AngleSharp.Renderer;
var context = BrowsingContext.New(Configuration.Default);
var document = await context.OpenAsync(req => req.Content(@"
<html>
<body>
<h1>Hello Renderer</h1>
<p>This is a first draft image render from AngleSharp.Renderer.</p>
</body>
</html>"));
var renderer = new HtmlRenderer();
var image = renderer.RenderToPng(document, new HtmlRenderOptions
{
Width = 800,
Height = 450,
});
await File.WriteAllBytesAsync("render.png", image.Data);The current architecture is intentionally split into two layers:
- Core: DOM/CSS integration, layout model, display-list generation
- Backend: rasterization (currently SkiaSharp)
This keeps future work open for additional backends and interactive rendering scenarios.
This project is supported by the .NET Foundation.
AngleSharp.Css is released using the MIT license. For more information see the license file.
