Малювання на HTML Canvas за допомогою .NET API
Aspose.HTML for .NET
надає контекст HTML Canvas 2D через інтерфейс
ICanvasRenderingContext2D
. Створіть HTMLCanvasElement, запросіть його контекст "2d", виконайте команди малювання в C# і відтворіть HTMLDocument, що містить полотно, у PDF або іншому підтримуваному форматі.
Малювання на HTML Canvas і рендеринг у PDF
Приклад створює полотно розміром 500 × 180 пікселів, малює градієнтний текст і прямокутник у його межах, а потім виконує рендеринг готового HTML-документа у файл canvas.pdf.
Код C# для малювання на HTML Canvas 2D
using Aspose.Html;
using Aspose.Html.Dom.Canvas;
using Aspose.Html.Rendering.Pdf;
using HTMLDocument document = new HTMLDocument();
// Create and configure the canvas
HTMLCanvasElement canvas =
(HTMLCanvasElement)document.CreateElement("canvas");
canvas.Width = 500;
canvas.Height = 180;
canvas.SetAttribute("style", "border: 1px solid #d3d3d3;");
document.Body.AppendChild(canvas);
// Get the 2D drawing context
ICanvasRenderingContext2D context =
(ICanvasRenderingContext2D)canvas.GetContext("2d");
// Create a horizontal gradient
ICanvasGradient gradient =
context.CreateLinearGradient(0, 0, canvas.Width, 0);
gradient.AddColorStop(0, "magenta");
gradient.AddColorStop(0.5, "blue");
gradient.AddColorStop(1, "red");
// Draw gradient text and a rectangle
context.FillStyle = gradient;
context.Font = "bold 32px sans-serif";
context.FillText("HTML Canvas 2D", 20, 70);
context.FillRect(20, 110, 460, 30);
// Render the HTML document to PDF
using PdfDevice device = new PdfDevice("canvas.pdf");
document.RenderTo(device);
Етапи малювання та рендерингу HTML Canvas
- Створіть
HTMLDocumentі додайтеHTMLCanvasElementдо тіла документа. - Задайте
WidthіHeight, щоб визначити розміри растрової поверхні та простір координат. - Викличте
GetContext("2d")і приведіть результат доICanvasRenderingContext2D. - Налаштуйте стилі й викличте методи, наприклад
FillText()іFillRect(). - Створіть
PdfDeviceі передайте його методуRenderTo(), щоб записати документ у PDF.
Можливості та особливості рендерингу HTML Canvas 2D
- Фігури та контури. Малюйте залиті або обведені прямокутники, лінії, криві, дуги й довільні контури методами Canvas 2D.
- Текст і зображення. Налаштовуйте шрифти та стилі, відтворюйте текст і розміщуйте на полотні підтримувані джерела зображень.
- Кольори, градієнти та шаблони. Призначайте суцільні кольори, об’єкти
ICanvasGradientабо шаблони властивостямFillStyleіStrokeStyle. - Трансформації та композиція. Виконуйте перенесення, поворот, масштабування й обрізання, керуйте прозорістю та способом накладання нових операцій на наявні пікселі.
- Розміри растра мають значення.
WidthіHeightвизначають внутрішній растр полотна. Зміна лише CSS-розмірів може розтягнути растр і знизити чіткість. - Рендеринг фіксує поточний стан. Завершіть команди малювання перед викликом
RenderTo(). ВикористовуйтеPdfDevice,XpsDevice,DocDeviceабоImageDeviceдля іншого підтримуваного результату.
Документація з Canvas 2D та рендерингу
У посібнику Редагування HTML5 Canvas розглянуто два підтримувані сценарії – завантаження HTML, який малює через JavaScript, і безпосереднє малювання через C# Canvas 2D API. Довідник API ICanvasRenderingContext2D містить доступні властивості й методи. Якщо потрібен PDF, XPS, DOCX або зображення з параметрами певного формату, перегляньте Пристрої рендерингу .
Установлення Aspose.HTML for .NET
Установіть Aspose.HTML for .NET з NuGet за допомогою .NET CLI:
dotnet add package Aspose.HTML
Також можна скористатися інтерфейсом диспетчера пакетів NuGet або виконати Install-Package Aspose.HTML у консолі диспетчера пакетів. Докладні інструкції наведено в
посібнику зі встановлення
. Щоб оцінити API без обмежень ознайомлювальної версії, запросіть
тимчасову ліцензію
.
Запитання про HTML Canvas 2D
1. Чим відрізняються HTMLCanvasElement і ICanvasRenderingContext2D?
Елемент HTMLCanvasElement представляє вузол <canvas> і визначає розміри його растра. ICanvasRenderingContext2D – це повернений методом GetContext("2d") інтерфейс малювання, який надає операції зі стилями, контурами, текстом, зображеннями, трансформаціями та пікселями.
2. Чому результат HTML Canvas може виглядати розмитим або розтягнутим?
Властивості Width і Height визначають внутрішній растр. Якщо CSS показує його в суттєво інших розмірах, браузер або засіб рендерингу масштабує пікселі. Задайте розміри растра для потрібного результату, а не покладайтеся лише на CSS-масштабування.
3. Чи може Aspose.HTML відтворити Canvas, намальований за допомогою JavaScript?
Так. Завантажте HTML-документ з елементом <canvas> і відповідним скриптом, дочекайтеся завершення виконання скрипту, а потім перетворіть або відтворіть документ. Якщо JavaScript не потрібен, малюйте безпосередньо з C# через ICanvasRenderingContext2D.
4. Чи перетворює рендеринг HTML Canvas у PDF малюнок на редаговані вектори HTML або SVG?
Ні. Canvas є растровою поверхнею малювання. Рендеринг зберігає її видимий стан у вихідному документі, але не відновлює малюнок як редаговані HTML-елементи або SVG-контури.
5. Чи можна зберегти HTML Canvas як зображення замість PDF?
Так. Виконайте рендеринг HTMLDocument, що містить полотно, через ImageDevice, налаштований для потрібного растрового формату. Полотно залишається частиною макета, тому розмір сторінки, поля й навколишній HTML можуть впливати на зображення.
Пов’язані сценарії рендерингу HTML
Перейдіть до створення й редагування HTML, перетворення в PDF або виведення зображення.