vue 导出 HTML 结构为 Word 文档(.docx)-支持表格、css样式、图片

在 Web 开发中,有时我们希望用户能够将网页上的 HTML 内容保存为 Word 文档,以便更方便地分享和打印。本文将介绍如何使用 html-docx-jsfile-saver 这两个 JavaScript 库,实现将 HTML 结构导出为 Word 文档的功能。

工具简介

1. html-docx-js

html-docx-js 是一个 JavaScript 库,用于将 HTML 内容转换为 Word 文档的格式。它提供了简单的 API,使得在浏览器环境中可以轻松地生成并导出 Word 文档。

2. file-saver

file-saver 是一个 JavaScript 库,用于在浏览器中保存文件。它简化了通过 Blob 对象保存文件的过程,并提供了一个直观的 API。

代码实现

首先,我们需要引入这两个库。你可以通过 npm 安装,也可以直接使用 CDN 引入。

<!-- 使用 npm 安装 -->
<!-- npm install html-docx-js file-saver --><!-- 或者直接使用 CDN 引入 -->
<script src="https://cdn.jsdelivr.net/npm/html-docx-js/dist/html-docx.js"></script>
<script src="https://cdn.jsdelivr.net/npm/file-saver/dist/FileSaver.min.js"></script>

然后,我们创建一个导出方法,该方法接受 HTML 内容作为参数,并将其导出为 Word 文档。

import htmlDocx from 'html-docx-js/dist/html-docx';
import FileSaver from 'file-saver';const exportToDocx = (htmlContent, fileName = 'exported-document.docx') => {// 构建包含 HTML 内容的完整 HTML 文档字符串const fullHtmlContent = `<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body>${htmlContent}</body></html>`;// 使用 html-docx-js 将 HTML 转换为 Word 文档的 Blob 对象const converted = htmlDocx.asBlob(fullHtmlContent);// 使用 file-saver 保存 Blob 对象为 Word 文档文件FileSaver.saveAs(converted, fileName);
};

最后,在你的应用中调用上述导出方法,并传入你想导出的 HTML 内容。

// 示例 HTML 内容
const htmlContent = '<h1>Hello, World!</h1><p>This is a sample document.</p>';// 调用导出方法
exportToDocx(htmlContent, 'my-exported-document.docx');

结果展示

html页面

导出docx

重点:这个html结构需要包含style样式,引入css文件样式不生效的

结语

通过使用 html-docx-jsfile-saver,我们能够在浏览器中轻松地将 HTML 结构导出为 Word 文档。这使得用户可以方便地保存网页上的内容,以备将来查阅或分享。

希望这篇博客能够帮助你实现在你的项目中将 HTML 结构导出为 Word 文档的功能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/299124.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测

多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实CNN-Mutilhead-Attention卷积神经网络融合多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 多维时序 | …

动态规划系列 | 最长上升子序列模型(下)| 拦截导弹一网打尽!

文章目录 拦截导弹题目描述输入格式输出格式 问题分析第一问第二问 贪心正确性证明程序代码复杂度分析 导弹防御系统题目描述输入格式输出格式 问题分析程序代码 拦截导弹 题目描述 某国为了防御敌国的导弹袭击&#xff0c;发展出一种导弹拦截系统。 但是这种导弹拦截系统有…

到底是前端验证还是后端验证

背景 软件应用研发中&#xff0c; 前端验证还是后端验证这是意识与认知问题。鉴于某些入门同学还不清楚&#xff0c;我们再来看下&#xff1a; 一. 从软件行业来自国外 Q: 前端验证和后端验证都是对同一个数据的验证&#xff0c;有什么区别&#xff1f; A: 二者的目的不同&…

Linux---命令行参数+环境变量

一、命令行参数 int main(int argc,char*argv[]) {//...return 0; } 不知道有没有人见过这样的主函数&#xff0c;它带了两个参数&#xff0c;argv接收的参数就叫做命令行参数&#xff0c;因为它的参数是从命令行来的&#xff0c;给大家演示一下&#xff0c;大家就懂了 命令行…

修改第三方npm包

文章目录 一、前言二、补丁方案2.1、patch-package2.2、pnpm patch 三、换日方案四、总结五、最后 一、前言 在开发过程中&#xff0c;发现某个npm包有Bug&#xff0c;应该怎么办&#xff1f;可以试试下面这2种方案&#xff1a; 代码量少&#xff0c;可以直接修改npm包代码的&…

初入职场不会Git?经常被团队成员怼?手把手教你如何使用git

Git分支合并选择 简介&#xff1a; 用Git进行多人协作开发时&#xff0c;必然会合并代码&#xff0c;解决冲突。然而合并代码也是需要点技巧的&#xff0c;如果对一些关键命令没有理解去使用的话&#xff0c;git的版本演进路线就会变得很乱&#xff0c;从而造成了日后维护的一…

【svn】win11最新svn每天自动化定时update、commit,隐藏窗口,定时脚本编写

本文使用schtasks结合bat脚本实现全自动svn update以及commit操作。执行时隐藏cmd窗口&#xff0c;全自动后台执行。 执行脚本 写脚本参考了网上很多文章&#xff0c;但是这些文章的方法都有问题或者已经失效&#xff0c;比如&#xff1a; 老版本的bat脚本&#xff0c;使用v…

vscode不同代码的项目分配不同的工作区

vscode不同代码的项目分配不同的工作区 很多时候我们很多项目都需要使用vscode来进行编写代码&#xff0c;像我个人会拿vscode写python&#xff0c;linux远程写代码&#xff0c;前端和stm32的编辑器&#xff0c;这些项目都有自己的插件&#xff0c;如果我们启动某一个项目&…

JVM内存结构Java内存模型Java对象模型

悟空老师思维导图&#xff1a;https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9https://naotu.baidu.com/file/60a0bdcaca7c6b92fcc5f796fe6f6bc9 1.JVM内存结构&&Java内存模型&&Java对象模型 1.1.JVM内存结构 1.2.Java对象模型 Java对象模型…

SQL变更评审常见问题分享

SQL变更评审分享 概述 SQL变更&#xff0c;是我们在开发迭代中不可避免的场景&#xff0c;SQL变更通常是指DDL和DML语句变更&#xff0c;这些sql会影响到数据库表结构或具体数据&#xff0c;变更时如果执行到存在问题的sql脚本&#xff0c;会对实际应用操作难以评估的损失&…

JuiceSSH结合内网穿透实现公网远程访问本地Linux虚拟机

文章目录 1. Linux安装cpolar2. 创建公网SSH连接地址3. JuiceSSH公网远程连接4. 固定连接SSH公网地址5. SSH固定地址连接测试 处于内网的虚拟机如何被外网访问呢?如何手机就能访问虚拟机呢? cpolarJuiceSSH 实现手机端远程连接Linux虚拟机(内网穿透,手机端连接Linux虚拟机) …

DHT11编程

实验&#xff1a;用数码管显示温湿度 dht11.h #ifndef _DHT11_H #define _DHT11_H #include "stm32f10x_conf.h"extern void dht11_init(void); extern void Get_Dht_Value(char *buf); #endifdht11.c #include"dht11.h" #include"bitband.h" …