教程 · DOCX → HTML
Word 变成 HTML 时留下了什么
「保留格式」有两个意思,你指的是哪个,决定了你会不会满意这个结果。
结构 —— 标题、列表、表格、强调 —— 会留下。外观 —— 字体、颜色、页边距、分页 —— 不会,而这是刻意的选择,不是缺了个功能。
结构留得住,外观留不住
一份 .docx 对每个段落存了两样互不相干的东西:它是什么,和它长什么样。「标题 2」是它是什么。16 磅 Calibri 加粗、段后 6 磅是它长什么样。
转换器读前一样,扔掉后一样。标题 2 变成 <h2> —— 不是一个带字号的 <p>。放到你的站上,它就套上你自己的标题样式,这几乎肯定是你要的。
另一条路是 Word 自己的「另存为网页」:几千行 mso- 样式,把那一页原样复刻出来,事后既改不动也换不了样式。
标题要套样式,不是只加粗
这是转之前唯一值得在 Word 里做的事,也是输出好和输出干瘪的分界。
只是看起来像标题的文字 —— 大一号、加粗、手动调的字号 —— 存的是普通段落。它会转成 <p>,因为它真的就是段落。字号里没有意图可以还原。
- 01在 Word 里把光标放到一个标题上,看样式库。如果显示「正文」,问题就在这儿。
- 02改成套标题 1、2 或 3。它的样子会变;不喜欢就去改那个标题样式本身。
- 03列表同理:用列表按钮,别自己敲「1.」再打个制表符。手敲的编号转出来是字面文字,不是 <ol>。
- 04转完在输出里找 <h2> 和 <ul>。如果看到的是一片 <p>,那说明这份文档从来就没有结构。
能转过来的
标题层级按 Word 的样式转成 <h1> 到 <h6>。粗体、斜体、删除线转成 <strong>、<em>、<s>。上标下标。链接,Google 和 Office 的跟踪参数会被摘掉。
列表转成真的 <ul> 和 <ol>,最多嵌五层。表格转成 <table>,合并单元格也算:横向合并出来是 colspan,纵向是 rowspan。
「引用」样式的段落转成 blockquote。样式是代码或预排版的段落转成 <pre><code>。题注转成 <p class="caption">。
被扔掉的,和为什么
字体、字号、颜色、突出显示、对齐、缩进、行距、分页符、页眉页脚、页边距。这些全是属于一张纸的呈现,而 HTML 不是一张纸。
有两样扔掉的值得单独说,因为容易被忽略。带下划线的文字会失去下划线 —— 网上的下划线意思是链接,所以 Word 的下划线宁可什么都不映射,也不映射成一个误导人的东西。还有空的占位段落会消失,因为那是排版,不是内容。
修订和批注会扔掉:你拿到的是终稿文字,不是编辑历史。文本框、SmartArt、图表留不下来 —— 只有里面的文字留得下,如果有的话。
图片:三种选择
老的 .doc 文件是例外:不管选哪种,图片都没法从那个格式里取出来。其余的 —— 文字、标题、表格、粗体 —— 都能转过来。
- 01内嵌成 base64,得到一个自带一切的 .html 文件,可以直接发邮件或双击打开。体积比原来的图大三分之一左右。
- 02单独存文件,得到一个 zip:HTML 加一个 images/ 文件夹,每个 <img> 已经指向对的路径。要发到真站上就用这个。
- 03丢掉图片,<img> 标签还在但 src 是空的,所以你会看到一排图片破损的占位框。要么删掉它们,要么用上面两种。
先设好标题样式,再转。文件在你的浏览器里读,从不上传,所以你可以拿保密的东西试。
DOCX → HTML