Что такое CanvasRenderingContext2D?
HTML-элемент <canvas>
– это растровая область на HTML-странице. Aspose.HTML for .NET предоставляет интерфейс
ICanvasRenderingContext2D
, который используется для рисования прямоугольников, текста, изображений и других объектов на холсте HTML. Он предоставляет контекст 2D-рендеринга для поверхности рисования элемента <canvas>
. С его помощью вы можете рисовать фигуры, линии, кривые, прямоугольники, текст и изображения, использовать цвета, вращения, преобразования и другие манипуляции с пикселями.
Сначала убедитесь, что в вашем проекте установлена Aspose.HTML for .NET. Процесс установки этой библиотеки довольно прост. Вы можете инсталлировать её через консоль диспетчера пакетов NuGet, используя следующую команду:
Установите Aspose.HTML for .NET.
Install-Package Aspose.HTML
Как визуализировать HTML-холст используя C#
Пространство имен
Aspose.Html.Dom.Canvas
предоставляет средства для рисования графики через элемент HTML <canvas>
и в основном ориентировано на 2D-графику. В следующем фрагменте кода C# показано, как использовать функцию рисования HTML5 Canvas для рендеринга пользовательской 2D-графики с текстом и прямоугольником, заполненным радиальным градиентом:
Код C# для рендеринга холста
using Aspose.Html;
using Aspose.Html.Converters;
using Aspose.Html.Rendering.Pdf;
using System.IO;
...
// Create an HTML document
using (var document = new HTMLDocument())
{
// Add a <canvas> element to the document
var canvas = (HTMLCanvasElement)document.CreateElement("canvas");
document.Body.AppendChild(canvas);
// Set the width, height and style attributes of the canvas
canvas.Width = 400;
canvas.Height = 400;
canvas.Style.Border = "1 solid #d3d3d3";
// Get the rendering context of the canvas (2d context)
var context = (Html.Dom.Canvas.ICanvasRenderingContext2D)canvas.GetContext("2d");
// Create a radial gradient
var gradient = context.CreateRadialGradient(200, 200, 40, 200, 200, 140);
gradient.AddColorStop(0, "#c11700");
gradient.AddColorStop(0.5, "orange");
gradient.AddColorStop(1, "#5a2100");
// Write the text
context.Font = "bold 28px serif";
context.FillText("Radial Gradient", 100, 40);
// Fill the rectangle with the radial gradient
context.FillStyle = gradient;
context.FillRect(50, 50, 400, 400);
// Prepare an output path
string outputPath = Path.Combine(OutputDir, "canvas-radial.pdf");
// Create the PDF output device
using var device = new PdfDevice(outputPath);
// Render HTML5 Canvas to PDF
document.RenderTo(device);
}
Пошаговое руководство – CanvasRenderingContext2D
- Используйте конструктор HTMLDocument() для инициализации HTML-документа. В примере мы создаем HTML с нуля, но вы также можете загрузить документ из файла или URL-адреса.
- Создайте элемент
<canvas>
с помощью метода CreateElement() и добавьте его в тело HTML-документа. Установите необходимые атрибуты для элемента<canvas>
, например,width
,height
,style
. - Чтобы использовать контекст 2D-холста, вам нужно вызвать метод
GetContext()
для элемента
<canvas>
и использовать2d
в качестве аргумента. - Следующий шаг – рисование на HTML-холсте:
- Радиальный градиент создается с помощью метода CreateRadialGradient() , определяющего остановки цвета в разных положениях для создания плавного перехода цветов.
- Текст пишется на холсте с помощью метода
FillText()
. Используйте свойство
Font
контекста 2D-рендерингаcontext
, чтобы установить настройки шрифта для рендеринга текста. - Прямоугольник холста заполняется ранее созданным радиальным градиентом с помощью метода FillRect() .
- Преобразование HTML5 Canvas в PDF:
- Используйте один из конструкторов PdfDevice() для создания объекта класса PdfDevice.
- Вызовите метод RenderTo(device) . Этот метод принимает в качестве параметра экземпляр класса PdfDevice.
Итак, этот код C# создает PDF-документ с текстом и радиальным градиентом, нарисованным на холсте. Полученный PDF-файл сохраняется по указанному пути (output path).
HTML-рендерер
Пространство имен Aspose.Html.Rendering предлагает класс HtmlRenderer , который отвечает за рендеринг HTML-документов посредством реализации интерфейса IDevice. Устройство рендеринга инкапсулирует 2D-поверхность рисования. В настоящее время Aspose.HTML for .NET API предоставляет следующие реализации: PdfDevice, XpsDevice, DocDevice и ImageDevice, которые используются для создания форматов файлов PDF, XPS, DOCX и Image соответственно.
В примере, который мы рассмотрели выше, HTML-документ был отображен в формате PDF. Но вы можете выбрать другое устройство рендеринга и преобразовать документ в другой формат, который вам нужен.
Aspose.HTML for .NET – Документация
Aspose.HTML for .NET – это расширенная библиотека анализа HTML. Можно создавать, редактировать, перемещаться по узлам, извлекать данные, объединять и конвертировать файлы HTML, XHTML, MD, EPUB и MHTML в PDF, DOCX, изображения и другие популярные форматы. Более того, она также готова к работе с CSS, HTML Canvas, SVG, XPath и JavaScript для расширения задач манипулирования. Более подробную информацию об установке библиотеки C# и системных требованиях можно найти в Документации Aspose.HTML .
В статье
Редактирование HTML5 Canvas – примеры С#
вы узнаете об HTML Canvas и о том, как работать с документом, содержащим элемент <canvas>
, с использованием Aspose.HTML for .NET API.
В главе Fine-Tuning Converters Aspose.HTML for .NET предоставляет альтернативные способы рендеринга HTML-документов, которые могут дать вам больше контроля над процессом рендеринга в вашем приложении C#. Наша библиотека C# реализует набор устройств рендеринга – PdfDevice, XpsDevice, DocDevice и ImageDevice. Каждый из них имеет свой уникальный набор параметров сохранения, реализованных с помощью классов PdfRenderingOptions, XpsRenderingOptions, DocRenderingOptions и ImageRenderingOptions соответственно.
Другие поддерживаемые функции Aspose.HTML for .NET API
Используйте библиотеку Aspose.HTML for .NET для преобразования, объединения, редактирования документов HTML, EPUB, MHTML, XHTML, MD, извлечения данных из Интернета и многого другого!