在现代Web开发中,有时我们需要让用户从网页直接下载内容为Word文档(.doc 或 .docx)。虽然浏览器原生不支持生成复杂的.docx文件,但通过简单的HTML结构和特定的MIME类型,我们可以生成兼容Word的文档。
Word可以识别带有特定头部信息的HTML内容,并将其当作Word文档打开。我们只需将HTML内容打包成Blob对象,并以application/msword类型触发下载即可。
以下是一个完整的HTML页面示例,点击按钮即可下载Word文档:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>这是Word文档的标题</h1>
<p>这是由HTML生成的Word内容。</p>
</body>
</html>
function generateWord() {
const html = `<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>这是Word文档的标题</h1>
<p>这是由HTML生成的Word内容。</p>
</body>
</html>`;
const blob = new Blob(['\ufeff', html], {
type: 'application/msword'
});
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'document.doc';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
mammoth.js 或后端服务。