支持的内容格式功能
导出至 Word 能够将 HTML 内容转换为 Word 文档,同时保留内容的原始格式。转换器支持各种 HTML 元素和 CSS 属性,允许转换复杂的内容结构。
本文档概述了支持的内容格式功能,包括文本样式、内联元素、块级元素和常见的 CSS 属性类型。
您可以使用内联样式、在 <style> 元素内定义的样式或通过 css 配置选项 提供的样式来设置 HTML 内容的样式。转换器支持样式继承,因此在父元素上设置的任何属性也适用于子元素,只要给定属性在 CSS 中是可继承的。
# 文本
转换器支持许多具有默认样式的内联 HTML 元素
| 元素名称 | 默认样式 |
|---|---|
| abbr | – |
| b | font-weight: bold |
| br | – |
| cite | font-style: italic |
| code | font-family: monospace |
| del | text-decoration: line-through solid black |
| dfn | font-style: italic; |
| em | font-style: italic; |
| i | font-style: italic; |
| ins | text-decoration: underline solid black |
| kbd | font-family: monospace |
| mark | background-color: yellow |
| s | text-decoration: line-through solid black |
| samp | font-family: monospace |
| small | font-size: smaller |
| span | – |
| strong | font-weight: bold |
| sub | vertical-alignment: sub; font-size: smaller |
| sup | vertical-alignment: sup; font-size: smaller |
| u | text-decoration: underline solid black |
| var | font-style: italic |
此外,所有元素都支持 id、class 和 style 属性,这些属性可用于使用各种 CSS 属性来格式化文档内容。以下部分概述了支持的 CSS 属性。
# 字体大小
可以使用 font-size 属性控制字体的尺寸。
# 字体系列
可以使用 font-family 属性设置字体系列。当指定多个字体系列名称时,只使用第一个。例如,以下 HTML 将生成一个使用 Courier New 字体的文档
<span style="font-family: 'Courier New', Courier, monospace">
Example text
</span>

通用 CSS 字体系列将转换为以下知名字体
| 通用 CSS 字体系列 | Word 等效项 |
|---|---|
serif |
Times New Roman |
sans-serif |
Arial |
cursive |
Times New Roman |
fantasy |
Impact |
monospace |
Courier New |
system-ui |
Verdana |
math |
Times New Roman |
fangsong |
Times New Roman |
kai |
Times New Roman |
nastaliq |
Times New Roman |
ui-serif |
Times New Roman |
ui-sans-serif |
Arial |
ui-monospace |
Courier New |
ui-rounded |
Times New Roman |
# 已知限制
- 文档中使用的所有字体可能在 Word 中都不可用。
# 字体样式
可以使用 font-style 属性设置字体的样式
normal:既不是斜体也不是倾斜的字体italic:斜体字体oblique:与italic相同
不支持倾斜字体中的自定义倾斜角。
# 字体粗细
要使文本变为粗体,可以使用 font-weight 属性。以下值将导致粗体文本
bold- 大于或等于
700的值
不支持其他值。
# 前景色和背景色
可以使用 color 和 background-color 属性分别指定前景色和背景色。转换器只支持 sRGB 色彩空间中的颜色
- 命名颜色,如
red、green或blue。 - 十六进制颜色表示法,如
#FF000、#00FF00或#0000FF。 - sRGB 颜色函数:
hsl()、hwb()或rgb()。
不支持其他色彩空间(如 CIELAB 或 Oklab)和自定义色彩空间。
# 已知限制
- 对半透明背景色的支持有限。不会将重叠的半透明颜色混合在一起。
# 文本装饰
文本装饰的转换根据 text-decoration-line 属性的值在不同程度上得到支持。只支持 underline 和 line-through 线类型。
# 下划线
当 text-decoration-line 属性设置为 underline 时,转换器将在文本下方添加下划线。以下其他属性也适用于下划线
text-decoration-style:支持solid、double、dotted、dashed和wavy值。text-decoration-color:支持与 前景色和背景色 相同的值。
# 删除线
当 text-decoration-line 属性设置为 line-through 时,转换器将生成带删除线的文本。
text-decoration-style:支持solid和double值。
# 下标和上标
要使文本显示为下标或上标,可以将 vertical-align 属性分别设置为 sub 或 super。
# 超链接
转换器将具有 href 属性的 <a> 元素转换为超链接。
href 属性允许的 URL 方案
httphttpsfileftpmailtosmstel
可以使用 base_url 配置选项更改超链接的基准 URL。该选项将所有相对链接更改为绝对链接。有关此选项的更多信息,请参阅 API 文档。
具有 href:# 和 #top 的 <a> 元素将转换为 Word 文档顶部的链接。如果文档包含 id 等于 #top 的 <a> 元素,则所有 href 为 #top 的 <a> 元素将指向该元素。
# 书签
转换器将具有 id 属性的 <a> 元素转换为书签。这允许保留链接 HTML 文本片段的行为。
id 属性的最大长度为 40 个 Unicode 字符,因为这是 Word 允许的书签名称的最大长度,任何超过此长度的 id 将被截断。
# 图片
转换器支持 <img> 元素的转换。支持以下属性
srcwidthheightalt
空 alt 属性 (alt="") 与缺少 alt 属性的属性相同。
src 属性允许的 URL 方案
httphttpsdata
可以使用 base_url 配置选项更改图片的基准 URL。该选项将所有相对图片源更改为绝对链接。有关此选项的更多信息,请参阅 API 文档。
支持的图片格式包括
apngavifbmpgifheic*jpgpngsvgtiff*webp
* 图片宽度和高度的转换可能无法正常工作。
转换器会将所有图片下载并嵌入到文档本身。这意味着在转换时必须能够通过 Internet 访问所有图片。如果无法访问图片,转换器会生成一个链接到其源的图片。但是,只有当用户在线并且可以访问图片时,Word 才会显示这些图片。
Word 使用占位符图片替换缺少的图片。除非源图片明确定义了 width 和 height 属性,否则该占位符的大小不会设置。
# 图片标题
您可以使用 <figcaption> 元素创建图片标题。要使此功能正常工作,<figcaption> 和 <img> 必须都放置在 <figure> 元素内。
带有标题的图片转换示例
<figure>
<img src="https://placeholder.com/200"/>
<figcaption>This is caption of example image.</figcaption>
</figure>

# 已知限制
- 要使带标题的图片正确转换,
<figure>元素内不能包含除必需元素以外的其他元素。 - 标题始终位于图片下方。
# 图片定位
<figure> 元素中的图像可以进行额外的定位。下表列出了定位类型以及必须应用于 <figure> 元素的样式,以便转换器正确生成定位图像。
| 定位 | 应用于 <figure> 元素的样式 |
|---|---|
| 图像水平对齐到左侧 | margin-left: 0; margin-right: auto |
| 图像水平居中 | margin-left: auto; margin-right: auto |
| 图像水平对齐到右侧 | margin-left: auto; margin-right: 0 |
| 文本从左侧环绕的图像 | float: right |
| 文本从右侧环绕的图像 | float: left |
# 段落
转换器将 <p> 元素转换为段落。此外,放置在任何块元素之外的内联内容会自动包装在段落中。多个后续的内联元素放置在块元素之外,会包装在同一个段落中。
This is text content outside of any block element.<br />
<strong>That can be additionally styled.</strong>
<p>This is a paragraph</p>

此外,段落支持以下部分描述的格式属性。
# 文本对齐
可以通过 text-align 属性在段落内对齐内联内容。支持以下值
leftcenterrightjustify
# 行高
可以通过 line-height 属性更改行的高度。转换器支持无单位值和指定单位的值。normal 值与 1.2 相同。
# 间距和缩进
可以通过应用 margin 属性来更改间距和缩进
- 缩进由
margin-left和margin-right属性控制。 - 段落上方和下方的间距分别由
margin-top和margin-bottom属性控制。
例如,考虑以下设置默认段落间距为 1 cm,并将中间段落的左侧缩进设置为 4 cm 的 HTML 代码
<style>
p {
margin-top: 1cm;
margin-bottom: 1cm;
}
</style>
<p>First paragraph with the default indentation and 1cm spacing.</p>
<p style="margin-left: 4cm">Second paragraph with 4cm left indentation.</p>
<p>Third paragraph with the default indentation and 1cm spacing.</p>

# 背景颜色
可以通过 background-color 属性以与 文本的背景颜色 相同的方式设置段落的背景颜色。
# 标题
转换器支持所有级别的 HTML 标题 <h1> 到 <h6>。标题根据其级别转换为相应的 Word 样式。有关更多信息,请参见 Word 样式 部分。
标题支持与段落相同的文本格式。
# 列表
转换器支持有序 <ol> 和无序 <ul> 列表。
支持嵌套列表,最多支持 9 级嵌套,大于 9 级的嵌套会强制转换为 9 级,这是 Word 支持的最大级别。
可以使用 start 属性更改有序列表的起始值。负值会强制转换为 0,因为 Word 不支持负值。
示例
<ul>
<li>First item</li>
<li>
Second item
<ul>
<li>Third item</li>
</ul>
</li>
</ul>
<ol start="4">
<li>Fourth item</li>
<li>Fifth item</li>
</ol>

# 标记类型
可以通过将 list-style-type 属性应用于 <ol> 和 <ul> 元素来更改列表项标记的样式。
仅支持以下类型
decimaldecimal-leading-zerolower-alphalower-latinupper-alphaupper-latinlower-romanupper-romandisccirclesquarenone
不支持的列表类型将被视为 disc。
# 已知限制
- 目前不支持 多级列表。
- 不支持列表项标记的格式。同样,
list-style-type也不能应用于<li>元素。 - 不支持列表及其内容的缩进。
- 由于 Word 的限制,不支持反转列表。
# 表格
转换器将任何 <table> 元素转换为表格。<table> 元素可以放置在 <figure> 元素中,在表格单元格中(允许嵌套表格),或者直接放置在文档正文中。
<style>
table {
border-collapse: collapse;
}
th,
td {
border: 1px solid black;
padding: 10px;
}
</style>
<figure>
<table>
<thead>
<tr>
<th>Cell 1</th>
<th>Cell 2</th>
<th>Cell 3</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
<td>Cell 3</td>
</tr>
<tr>
<td>Cell 4</td>
<td>Cell 5</td>
<td>Cell 6</td>
</tr>
</tbody>
</table>
</figure>

此外,转换器还支持以下过时的表格属性
alignbgcolorbordercellpaddingcellspacingframeruleswidth
# 表格列
可以使用 <colgroup> 和 <col> 元素定义表格的列。转换器支持这两个元素。转换器还支持这两个元素上的 span 属性。
# 表格行
转换器支持 <thead>、<tbody> 和 <tfoot> 行组元素以及 <tr> 元素。仅第一个 <thead> 和 <tfoot> 元素被识别为表格标题和页脚,如果它们放置在错误的顺序中,转换器会将它们移动,以便分别放置在表格开头或结尾。
第一个 <thead> 元素中的所有行都被视为标题行,并在 Word 中的每个新页面上重复。
这些元素支持以下过时的属性
bgcolorvalign
# 表格单元格
表格单元格由 <th> 和 <td> 元素定义。由于 Word 不支持标题单元格,因此 <th> 元素与 <td> 元素相同。
表格单元格可以通过将 colspan 或 rowspan 属性应用于它们来跨越多个列或行。但是,rowspan 不能超过当前行组中的行数,否则它会被强制转换为该行数。
表格单元格支持以下过时的属性
bgcolorheightvalignwidth
此外,scope 属性可以应用于 <th> 元素,尽管转换器会忽略它。
# 表格定位
表格可以像图像一样进行定位,但所需的样式可以应用于 <table> 元素本身或父 <figure> 元素。可以使用左右边距来水平对齐表格。
| 定位 | 应用于 <table> 或 <figure> 元素的样式 |
|---|---|
| 表格水平对齐到左侧 | margin-left: 0; margin-right: auto |
| 表格水平居中 | margin-left: auto; margin-right: auto |
| 表格水平对齐到右侧 | margin-left: auto; margin-right: 0 |
float 属性可以将表格对齐到左侧或右侧,文本在另一侧环绕。
| 定位 | 应用于 <table> 或 <figure> 元素的样式 |
|---|---|
| 文本从左侧环绕的表格 | float: right |
| 文本从右侧环绕的表格 | float: left |
# 表格边框
所有表格元素都可以使用以下属性来设置表格边框的样式
border-colorborder-styleborder-width
ridge 和 groove 线样式分别转换为 inset 和 outset,Word 对它们的渲染方式与浏览器不同。此外,如果 double 边框的宽度小于或等于 1 px,它们将转换为 solid 边框。
边框颜色支持与 文本的前景和背景颜色 相同的值。Word 支持的最小和最大边框宽度分别为 0.333… px 和 16 px。超出此范围的值会被强制转换为边界值。
此外,<table> 元素支持另外两个与边框相关的属性
border-collapseborder-spacing
它们可以用来控制表格的边框是否应该合并或分开。Word 不支持没有间距的分开边框,因此在这些情况下,转换器会将间距设置为最小值 0.05 pt。
# 背景颜色
可以通过 background-color 属性以与 文本的背景颜色 相同的方式设置任何表格元素的背景颜色。
# 表格和表格单元格宽度
<table>、<th> 和 <td> 元素支持 width 属性,该属性可以用来设置整个表格或单个表格单元格的宽度。百分比不受完全支持,它们始终会被转换为绝对单位。
# 表格行高
<tr> 元素支持 height 属性,该属性用于定义表格行的高度。转换器始终将此值视为最小表格行高。
# 表格单元格边距
表格单元格的边距由 <th> 和 <td> 元素上的 padding 属性指定。
# 垂直内容对齐
可以将 vertical-align 属性设置为 <th> 和 <td> 元素,以定义单元格中的内容应如何垂直对齐。支持的值为 top、middle 和 bottom。
# 已知限制
- 目前不支持表格标题。
- Word 不支持列表项中的表格,因此它们会被移出列表。
# 预格式化文本
转换器支持 <pre> 元素,允许以固定宽度字体显示文本。这通常用于显示代码片段。
<pre>
________________
/ \
| How about moo? | ^__^
\________________/ (oo)\_______
\ (__)\ )\/\
||----w |
|| ||
</pre>

# 引文
转换器支持 <blockquote> 元素,允许将内容显示为引文。
示例
<blockquote>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas eu
scelerisque tortor. Cras venenatis iaculis velit sit amet sollicitudin.
</blockquote>

# 分页符
转换器支持 break-after 和 break-before 属性的 page 值。将此样式属性添加到任何内联或块 HTML 元素将导致在相应的元素之前或之后生成一个分页符。
不支持表格中的分页符。
# 水平线
转换器支持 <hr> 元素,允许在 Word 文档中插入水平线。
水平线不支持任何样式。
# 被忽略的元素
转换器会忽略任何 display 属性设置为 none 或 contents,或 visibility 属性设置为 hidden 或 collapse 的元素。
# 语言
转换器支持所有支持的包含文本的 HTML 元素上的 lang 属性。在 Word 中,lang 属性指定用于对元素中的文本进行拼写检查的语言。