Skip to content

Commit e0e5c0b

Browse files
Merge pull request #60 from aspose-html/optimize/html/java/20260204200737
Optimize 92 Html Java pages
2 parents f6ecb0c + 3793fa7 commit e0e5c0b

92 files changed

Lines changed: 5045 additions & 4168 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

html/arabic/java/advanced-usage/html5-canvas-manipulation-using-code/_index.md

Lines changed: 63 additions & 48 deletions
Large diffs are not rendered by default.

html/arabic/java/configuring-environment/configure-fonts/_index.md

Lines changed: 58 additions & 46 deletions
Large diffs are not rendered by default.

html/arabic/java/configuring-environment/set-character-set/_index.md

Lines changed: 48 additions & 38 deletions
Large diffs are not rendered by default.

html/arabic/java/configuring-environment/set-user-style-sheet/_index.md

Lines changed: 52 additions & 41 deletions
Large diffs are not rendered by default.

html/chinese/java/advanced-usage/html5-canvas-manipulation-using-code/_index.md

Lines changed: 63 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
date: 2025-12-04
2+
date: 2026-02-04
33
description: 学习如何使用 Aspose.HTML for Java 操作 HTML5 Canvas 将 HTML 渲染为 PDF。按照一步一步的说明将
44
Canvas 导出为 PDF。
55
linktitle: HTML5 Canvas Manipulation Using Code
66
second_title: Java HTML Processing with Aspose.HTML
7-
title: 将HTML渲染为PDF:使用 Aspose.HTML for Java 进行画布操作
7+
title: 将 HTML 渲染为 PDF:使用 Aspose.HTML for Java 进行 Canvas 操作
88
url: /zh/java/advanced-usage/html5-canvas-manipulation-using-code/
99
weight: 12
1010
---
@@ -13,29 +13,38 @@ weight: 12
1313
{{< blocks/products/pf/main-container >}}
1414
{{< blocks/products/pf/tutorial-page-section >}}
1515

16-
# 渲染 HTML PDF:使用 Aspose.HTML for Java 进行 Canvas 操作
16+
# HTML 渲染为 PDF:使用 Aspose.HTML for Java 进行 Canvas 操作
1717

18-
HTML5 的 **Canvas** 元素为开发者提供了一个强大的绘图表面,直接在浏览器中使用,而 **Aspose.HTML for Java** 让您能够在服务器端将该 Canvas 内容 **渲染为 PDF**。在本教程中,您将学习如何创建一个空的 HTML 文档添加 Canvas、绘制形状和文字、应用渐变画刷,最后将 Canvas 导出为 PDF 文件。完成后,您只需几行 Java 代码即可 **导出 Canvas 为 PDF**
18+
HTML5 的 **Canvas** 元素为开发者提供了一个强大的绘图表面,直接在浏览器中使用,而 **Aspose.HTML for Java** 让您能够在服务器端将该 canvas 内容 **render HTML to PDF**。在本教程中,您将学习如何创建一个空的 HTML 文档添加 canvas,绘制形状和文本,应用渐变画刷,最后将 canvas 导出为 PDF 文件。完成后,您只需几行 Java 代码即可 **export canvas as PDF**
1919

20-
## 快速答案
21-
- **Aspose.HTML for Java 能做什么** 它可以创建、编辑并渲染 HTML 文档——包括 Canvas 图形——为 PDF、图像等格式。
22-
- **可以在 Java 中设置 Canvas 大小吗?** 可以,使用 `HTMLCanvasElement``setWidth()``setHeight()` 方法。
23-
- **如何向 Canvas 添加文字** 在 2D 渲染上下文上调用 `fillText()`
20+
## 快速回答
21+
- **Aspose.HTML for Java 的作用是什么** 它允许您创建、编辑并渲染 HTML 文档——包括 Canvas 图形——为 PDF、图像等格式。
22+
- **我可以在 Java 中设置 canvas 大小吗?** 可以,使用 `HTMLCanvasElement``setWidth()``setHeight()` 方法。
23+
- **如何向 canvas 添加文本** 在 2D 渲染上下文上调用 `fillText()`
2424
- **是否支持渐变?** 当然——创建 `ICanvasGradient` 并将其分配给 `fillStyle``strokeStyle`
25-
- **支持哪些输出格式?** PDF、PNG、JPEG 以及通过 Aspose.HTML 渲染设备支持的其他光栅格式
25+
- **支持哪些输出格式?** 通过 Aspose.HTML 渲染设备支持 PDF、PNG、JPEG 以及其他栅格格式
2626

2727
## 什么是 “render html to pdf”?
28-
将 HTML 渲染为 PDF 意味着把网页(包括 CSS、JavaScript 和 Canvas 绘图)转换为一个静态的 PDF 文档,保持视觉布局不变。Aspose.HTML for Java 在服务器上完成此转换,无需浏览器,非常适合自动化报表、发票或归档等场景
28+
将 HTML 渲染为 PDF 指的是将网页(包括 CSS、JavaScript 和 Canvas 绘图)转换为保持视觉布局的静态 PDF 文档。Aspose.HTML for Java 在服务器端完成此转换,无需浏览器,非常适合自动化报表、发票或归档
2929

30-
## 为什么使用 Aspose.HTML for Java 导出 Canvas 为 PDF?
30+
## 为什么使用 Aspose.HTML for Java 将 canvas 导出为 PDF?
3131
- **服务器端处理** – 无需无头浏览器,库本身完成繁重工作。
32-
- **完整的 Canvas 支持** – 所有 2D 绘图 API(`fillRect``fillText`、渐变等)表现与浏览器中完全一致
33-
- **高质量 PDF 输出** – 矢量图形保持清晰,文字可选取
34-
- **跨平台** – 在任何运行 Java 的操作系统上均可使用
32+
- **完整的 Canvas 支持** – 所有 2D 绘图 API(`fillRect``fillText`、渐变等)在浏览器中的表现完全相同
33+
- **高质量 PDF 输出** – 矢量图形保持清晰,文本可选中
34+
- **跨平台** – 在任何运行 Java 的操作系统上均可工作
3535

36-
## 前置条件
36+
## 为什么这对服务器端 PDF 生成很重要
37+
在服务器端从 Canvas 生成 PDF 可消除客户端截图或第三方服务的需求。它提供确定且可重复的结果,并允许您将动态图形——如图表、签名或自定义插图——直接嵌入 PDF,随后可自动通过电子邮件发送、存储或打印。
3738

38-
在开始编写代码之前,请确保您具备以下条件:
39+
## 常见使用场景
40+
- **动态发票**,其中包含在 Canvas 上绘制的公司徽标。
41+
- **数据可视化**,如实时渲染的柱状图或热力图。
42+
- **证书生成**,将装饰性的 Canvas 背景与个性化文本相结合。
43+
- **交互式报告导出**,用户在网页应用中设计图形后即时获取 PDF 版本。
44+
45+
## 前提条件
46+
47+
在深入代码之前,请确保您具备以下条件:
3948

4049
- **Java 环境** – 已安装 Java 8 或更高版本。您可以从 [here](https://www.java.com/download/) 下载 Java。
4150
- **Aspose.HTML for Java** – 从 [download page](https://releases.aspose.com/html/java/) 下载库。
@@ -54,47 +63,47 @@ import com.aspose.html.dom.canvas.ICanvasGradient;
5463
import com.aspose.html.rendering.pdf.PdfDevice;
5564
```
5665

57-
现在包已经准备好,让我们逐步了解 Canvas 操作的每个步骤
66+
现在包已准备好,让我们逐步了解 Canvas 操作的每一步
5867

5968
## 步骤指南
6069

6170
### 步骤 1:创建空的 HTML 文档
6271

63-
首先实例化一个 `HTMLDocument`,它将作为我们 Canvas 的容器。
72+
首先,实例化一个 `HTMLDocument`,它将作为我们 canvas 的容器。
6473

6574
```java
6675
HTMLDocument document = new HTMLDocument();
6776
```
6877

6978
### 步骤 2:在 Java 中设置 Canvas 大小
7079

71-
创建一个 `<canvas>` 元素并定义其尺寸。这正是 **set canvas size java** 关键字的用武之地
80+
创建一个 `<canvas>` 元素并定义其尺寸。这正是 **set canvas size java** 关键字发挥作用的地方
7281

7382
```java
7483
HTMLCanvasElement canvas = (HTMLCanvasElement) document.createElement("canvas");
7584
canvas.setWidth(300);
7685
canvas.setHeight(150);
7786
```
7887

79-
### 步骤 3:将 Canvas 追加到文档
88+
### 步骤 3:将 Canvas 添加到文档中
8089

81-
Canvas 附加到文档的 `<body>`,使其成为 HTML 结构的一部分。
90+
canvas 附加到文档的 `<body>`,使其成为 HTML 结构的一部分。
8291

8392
```java
8493
document.getBody().appendChild(canvas);
8594
```
8695

8796
### 步骤 4:获取 Canvas 渲染上下文
8897

89-
获取用于在 Canvas 上绘图的 2D 渲染上下文 (`ICanvasRenderingContext2D`)。
98+
获取用于在 canvas 上绘图的 2D 渲染上下文 (`ICanvasRenderingContext2D`)。
9099

91100
```java
92101
ICanvasRenderingContext2D context = (ICanvasRenderingContext2D) canvas.getContext("2d");
93102
```
94103

95104
### 步骤 5:准备渐变画刷
96105

97-
创建一个线性渐变,从品红色过渡到蓝色再到红色。这演示了 **draw gradient canvas java**
106+
创建一个从品红到蓝色再到红色的线性渐变。这演示了 **draw gradient canvas java**
98107

99108
```java
100109
ICanvasGradient gradient = context.createLinearGradient(0, 0, canvas.getWidth(), 0);
@@ -105,16 +114,16 @@ gradient.addColorStop(1.0, "red");
105114

106115
### 步骤 6:将渐变分配给填充和描边
107116

108-
将渐变同时应用于填充样式和描边样式
117+
将渐变应用于填充样式和描边样式
109118

110119
```java
111120
context.setFillStyle(gradient);
112121
context.setStrokeStyle(gradient);
113122
```
114123

115-
### 步骤 7:向 Canvas 添加文字(add text canvas java)
124+
### 步骤 7:向 Canvas 添加文本(add text canvas java)
116125

117-
使用渲染上下文写入文字并绘制填充矩形
126+
使用渲染上下文写入文本并绘制填充矩形
118127

119128
```java
120129
context.fillText("Hello World!", 10, 90, 500d);
@@ -123,56 +132,62 @@ context.fillRect(0, 95, 300, 20);
123132

124133
### 步骤 8:创建 PDF 输出设备
125134

126-
设置一个 `PdfDevice`,用于接收渲染后的 PDF。这一步对于 **export canvas as pdf** 至关重要。
135+
设置一个 `PdfDevice` 来接收渲染后的 PDF。此步骤对于 **export canvas as pdf** 至关重要。
127136

128137
```java
129138
PdfDevice device = new PdfDevice("canvas.output.2.pdf");
130139
```
131140

132141
### 步骤 9:将 HTML5 Canvas 渲染为 PDF(render html to pdf)
133142

134-
最后,将整个 HTML 文档——包括 Canvas——渲染到 PDF 设备。
143+
最后,将整个 HTML 文档包括 canvas)渲染到 PDF 设备。
135144

136145
```java
137146
document.renderTo(device);
138147
```
139148

140-
程序执行完毕后,您将在工作目录中找到 `canvas.output.2.pdf`其中包含渐变填充的矩形以及 “Hello World!” 文字
149+
程序完成后,您将在工作目录中找到 `canvas.output.2.pdf`其中包含渐变填充的矩形和 “Hello World!” 文本。这演示了如何仅用几行代码 **generate PDF from canvas**
141150

142151
## 常见问题及解决方案
143152

144153
| 问题 | 原因 | 解决方案 |
145-
|------|------|----------|
146-
| **空白 PDF** | 渲染前 Canvas 未附加到文档。 | 确保在调用 `renderTo()` 之前执行 `document.getBody().appendChild(canvas);`|
147-
| **渐变不可见** | 渐变颜色未正确添加。 | 检查 `addColorStop()` 调用,并确认渐变已同时设置为填充和描边。 |
148-
| **文件未生成** | 输出文件夹没有写入权限。 | 使用具有相应文件系统权限的方式运行程序,或指定绝对路径。 |
154+
|-------|--------|-----|
155+
| **Blank PDF** | Canvas 在渲染前未附加到文档。 | 确保在调用 `renderTo()` 之前执行 `document.getBody().appendChild(canvas);`|
156+
| **Gradient not visible** | 渐变颜色未正确添加。 | 检查 `addColorStop()` 调用,并确保渐变同时设置为填充和描边。 |
157+
| **File not created** | 输出文件夹没有写入权限。 | 使用适当的文件系统权限运行程序,或指定绝对路径。 |
158+
159+
## 常见问题
160+
161+
**问:Aspose.HTML for Java 可以免费使用吗?**
162+
答:不,Aspose.HTML for Java 是商业库。定价详情请参见 [purchase page](https://purchase.aspose.com/buy)
149163

150-
## 常见问答
164+
**问:是否提供免费试用?**
165+
答:是的,您可以从 [here](https://releases.aspose.com/) 下载免费试用版。
151166

152-
**Q: Aspose.HTML for Java 可以免费使用吗**
153-
A: 不能,Aspose.HTML for Java 是商业库。定价详情请参见 [purchase page](https://purchase.aspose.com/buy)
167+
**问:在哪里可以找到文档和支持**
168+
答:文档位于 [https://reference.aspose.com/html/java/](https://reference.aspose.com/html/java/)。社区帮助请访问 [Aspose forums](https://forum.aspose.com/)
154169

155-
**Q: 有免费试用版吗**
156-
A: 有,您可以从 [here](https://releases.aspose.com/) 下载免费试用版
170+
**问:我可以在其他编程语言中使用 Aspose.HTML for Java 吗**
171+
答:Aspose 为 .NET、Node.js 等平台提供了类似的库,但 Java 库仅适用于 Java
157172

158-
**Q: 哪里可以找到文档和支持**
159-
A: 文档位于 [https://reference.aspose.com/html/java/](https://reference.aspose.com/html/java/)。社区帮助请访问 [Aspose forums](https://forum.aspose.com/)
173+
**问:HTML5 Canvas 还有哪些其他使用场景**
174+
答:Canvas 非常适合游戏、交互式数据可视化、图像编辑器以及自定义图表解决方案
160175

161-
**Q: 能否在其他编程语言中使用 Aspose.HTML for Java**
162-
A: Aspose 为 .NET、Node.js 等平台提供了类似库,但 Java 库仅适用于 Java
176+
**问:在 canvas 上绘制渐变与纯色填充有什么区别**
177+
答:渐变在形状上产生平滑的颜色过渡,相比单色填充提供更精致的视觉效果
163178

164-
**Q: HTML5 Canvas 还有哪些其他用例**
165-
A: Canvas 适用于游戏、交互式数据可视化、图像编辑器以及自定义图表等场景
179+
**问:是否可以在不先写入磁盘的情况下从 canvas 生成 PDF**
180+
答:可以,您可以渲染到内存流,然后直接将 PDF 字节发送给客户端或其他服务
166181

167182
## 结论
168183

169-
本教程中,您学习了如何通过 Aspose.HTML for Java 创建并操作 HTML5 Canvas,进而 **渲染 HTML PDF**您现在掌握了 **set canvas size java****add text canvas java****draw gradient canvas java**,以及最终的 **export canvas as pdf**利用这些技术,您可以构建动态报表、生成图形丰富的 PDF,或自动化任何需要服务器端渲染 HTML Canvas 内容的工作流。
184+
在本教程中,您学习了如何通过使用 Aspose.HTML for Java 创建和操作 HTML5 Canvas**render HTML to PDF**现在您已经掌握了 **set canvas size java****add text canvas java****draw gradient canvas java**,以及最终的 **export canvas as pdf**利用这些技术可以构建动态报表、生成图形丰富的 PDF,或自动化任何需要服务器端渲染 Canvas 内容的工作流。
170185

171186
---
172187

173-
**Last Updated:** 2025-12-04
174-
**Tested With:** Aspose.HTML for Java 24.11 (latest at time of writing)
175-
**Author:** Aspose
188+
**最后更新:** 2026-02-04
189+
**测试环境:** Aspose.HTML for Java 24.11(撰写时的最新版本)
190+
**作者:** Aspose
176191

177192
{{< /blocks/products/pf/tutorial-page-section >}}
178193

0 commit comments

Comments
 (0)