支持的内容格式功能
导出至 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 方案
http
https
file
ftp
mailto
sms
tel
可以使用 base_url
配置选项更改超链接的基准 URL。该选项将所有相对链接更改为绝对链接。有关此选项的更多信息,请参阅 API 文档。
具有 href:#
和 #top
的 <a>
元素将转换为 Word 文档顶部的链接。如果文档包含 id
等于 #top
的 <a>
元素,则所有 href 为 #top
的 <a>
元素将指向该元素。
# 书签
转换器将具有 id
属性的 <a>
元素转换为书签。这允许保留链接 HTML 文本片段的行为。
id
属性的最大长度为 40 个 Unicode 字符,因为这是 Word 允许的书签名称的最大长度,任何超过此长度的 id
将被截断。
# 图片
转换器支持 <img>
元素的转换。支持以下属性
src
width
height
alt
空 alt
属性 (alt=""
) 与缺少 alt
属性的属性相同。
src
属性允许的 URL 方案
http
https
data
可以使用 base_url
配置选项更改图片的基准 URL。该选项将所有相对图片源更改为绝对链接。有关此选项的更多信息,请参阅 API 文档。
支持的图片格式包括
apng
avif
bmp
gif
heic
*jpg
png
svg
tiff
*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
属性在段落内对齐内联内容。支持以下值
left
center
right
justify
# 行高
可以通过 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>
元素来更改列表项标记的样式。
仅支持以下类型
decimal
decimal-leading-zero
lower-alpha
lower-latin
upper-alpha
upper-latin
lower-roman
upper-roman
disc
circle
square
none
不支持的列表类型将被视为 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>
此外,转换器还支持以下过时的表格属性
align
bgcolor
border
cellpadding
cellspacing
frame
rules
width
# 表格列
可以使用 <colgroup>
和 <col>
元素定义表格的列。转换器支持这两个元素。转换器还支持这两个元素上的 span
属性。
# 表格行
转换器支持 <thead>
、<tbody>
和 <tfoot>
行组元素以及 <tr>
元素。仅第一个 <thead>
和 <tfoot>
元素被识别为表格标题和页脚,如果它们放置在错误的顺序中,转换器会将它们移动,以便分别放置在表格开头或结尾。
第一个 <thead>
元素中的所有行都被视为标题行,并在 Word 中的每个新页面上重复。
这些元素支持以下过时的属性
bgcolor
valign
# 表格单元格
表格单元格由 <th>
和 <td>
元素定义。由于 Word 不支持标题单元格,因此 <th>
元素与 <td>
元素相同。
表格单元格可以通过将 colspan
或 rowspan
属性应用于它们来跨越多个列或行。但是,rowspan
不能超过当前行组中的行数,否则它会被强制转换为该行数。
表格单元格支持以下过时的属性
bgcolor
height
valign
width
此外,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-color
border-style
border-width
ridge
和 groove
线样式分别转换为 inset
和 outset
,Word 对它们的渲染方式与浏览器不同。此外,如果 double
边框的宽度小于或等于 1 px,它们将转换为 solid
边框。
边框颜色支持与 文本的前景和背景颜色 相同的值。Word 支持的最小和最大边框宽度分别为 0.333… px 和 16 px。超出此范围的值会被强制转换为边界值。
此外,<table>
元素支持另外两个与边框相关的属性
border-collapse
border-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
属性指定用于对元素中的文本进行拼写检查的语言。