Редактировать HTML5 Canvas на Java

Что такое HTML Canvas?

Элемент HTML <canvas> – это элемент HTML5, который позволяет разработчикам создавать динамическую визуализацию 2D-фигур и растровых изображений с возможностью сценариев непосредственно в веб-браузере. Aspose.HTML for Java поддерживает эту функциональность, обеспечивая плавную интеграцию и манипулирование элементами холста (canvas) в приложениях Java.

Основные возможности HTML Canvas

  1. Атрибуты

Элемент <canvas> должен включать:

  1. Интеграция JavaScript

Для создания динамических изображений или работы с графикой элемент <canvas> использует JavaScript для операций рисования и рендеринга. Это позволяет разработчикам создавать настраиваемые визуальные эффекты, используя метод getContext() для доступа к контексту рендеринга.

  1. Глобальные атрибуты

Элемент <canvas> поддерживает HTML Global Attributes, обеспечивая большую гибкость в стиле и взаимодействии.

HTML5 Canvas – как редактировать на Java

Чтобы отобразить холст как часть HTML-документа, не требуется никаких особых манипуляций. Просто визуализируйте документ, как обычно. Следующий фрагмент кода демонстрирует, как работать с документом, содержащим элемент HTML5 Canvas: элемент HTML <canvas> имеет атрибуты id, width, height и style; внутри элемента <canvas> есть блок сценария, содержащий код JavaScript для рисования «Hello, World!» на холсте.

  1. Подготовьте HTML-код с HTML5 Canvas внутри и используйте класс java.io.FileWriter для записи HTML-кода в файл.
  2. Инициализируйте HTML-документ из файла, используя класс HTMLDocument.
  3. Вызовите, например, метод convertHTML(document, options, outputPath), чтобы преобразовать HTML в PDF с параметрами сохранения по умолчанию.
 1// Convert HTML5 Canvas with JavaScript text to PDF using Aspose.HTML for Java
 2
 3// Prepare a document with HTML5 Canvas inside and save it to the file "document.html"
 4String code = "<canvas id=myCanvas width='200' height='100' style='border:1px solid #d3d3d3;'></canvas>" +
 5        "<script>" +
 6        "var c = document.getElementById('myCanvas');" +
 7        "var context = c.getContext('2d');" +
 8        "context.font = '20px Arial';" +
 9        "context.fillStyle = 'red';" +
10        "context.fillText('Hello World', 40, 50);" +
11        "</script>";
12try (java.io.FileWriter fileWriter = new java.io.FileWriter("document.html")) {
13    fileWriter.write(code);
14}
15
16// Initialize an HTML document from the HTML file
17try (HTMLDocument document = new HTMLDocument("document.html")) {
18
19    // Convert HTML to PDF
20    Converter.convertHTML(document, new PdfSaveOptions(), "output.pdf");
21}

Canvas Rendering Context 2D

Помимо обработки HTML5 Canvas как части HTML-документа, вы можете работать с холстом непосредственно внутри вашего Java-кода. Aspose.HTML предоставляет интерфейс ICanvasRenderingContext2D для этих операций, который полностью основан на официальном стандарте. В следующем фрагменте кода показано, как использовать функцию рисования HTML5 Canvas для рендеринга пользовательского текста, заполненного градиентной кистью.

 1// Create HTML5 canvas with gradient text and rectangle, convert to PDF with Java
 2
 3// Create an empty HTML document
 4try (HTMLDocument document = new HTMLDocument()) {
 5
 6    // Create a canvas element
 7    HTMLCanvasElement canvas = (HTMLCanvasElement) document.createElement("canvas");
 8
 9    // with a specified size
10    canvas.setWidth(300);
11    canvas.setHeight(150);
12
13    // Append the canvas element to the document body
14    document.getBody().appendChild(canvas);
15
16    // Get the canvas rendering context to draw
17    ICanvasRenderingContext2D context = (ICanvasRenderingContext2D) canvas.getContext("2d");
18
19    // Prepare a gradient brush
20    ICanvasGradient gradient = context.createLinearGradient(0, 0, canvas.getWidth(), 0);
21    gradient.addColorStop(0, "magenta");
22    gradient.addColorStop(0.5, "blue");
23    gradient.addColorStop(1.0, "red");
24
25    // Assign the brush to the content
26    context.setFillStyle(gradient);
27    context.setStrokeStyle(gradient);
28
29    // Write the text
30    context.fillText("Hello, World!", 10, 90, 500);
31
32    // Fill the rectangle
33    context.fillRect(0, 95, 300, 20);
34
35    // Create a PDF output device
36    try (PdfDevice device = new PdfDevice("canvas.output.pdf")) {
37
38        // Render HTML5 Canvas to PDF
39        document.renderTo(device);
40    }
41}

Рекомендации

Чтобы узнать больше о том, как использовать HTML5 Canvas, вы можете прочитать популярную публикацию HTML Canvas Tutorial.

Вы можете загрузить полные примеры и файлы данных по адресу GitHub.