需求:将页面或者页面上所需要的部分导出为word文档

  • 基本导出
  • 修改样式
  • 修改图片大小
  • 修改导出文档名称
  • 修改导出默认方式

准备工作

  • jquery
  • FileSaver.js
  • jquery.wordexport.js

js文件地址:
https://github.com/eligrey/FileSaver.js/
https://github.com/markswindoll/jQuery-Word-Export

一、基本打印

  1. 引入jquery 以及上面的两个js文件,要注意引入的顺序,不能随意修改。
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script src="js/FileSaver.js"></script>
<script src="js/jquery.wordexport.js"></script>
  1. html代码
<div id="page">导出的内容
</div>
<a class="page-btn" href="javascript:void(0)"> 导出 </a>
  1. js代码
 jQuery(document).ready(function($) {$("a.page-btn").click(function(event) { $("#page").wordExport(); //打印id为page的div中的所有内容});});
  1. 导出效果



6. 完整代码

<!DOCTYPE html>
<html><head><meta charset="utf-8" /><title>打印demo</title></head><body><div id="page">导出的内容</div><a class="page-btn" href="javascript:void(0)"> 导出 </a></body>
</html><script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script src="js/FileSaver.js"></script>
<script src="js/jquery.wordexport.js"></script>
<script type="text/javascript">jQuery(document).ready(function($) {$("a.page-btn").click(function(event) {$("#page").wordExport();});});
</script>

以上便实现了基本的页面导出word文档,接下来将插入一张图片并对其它要点做演示。

二、修改样式

对样式进行修改,页面中的样式生效,但导出的word文档中的样式并未与页面中一致。


解决方案:

  • 方法一: 使用内联样式进行样式的修改
<p class="title" style="color: red;font-size: 18px;">修改基本的导出样式</p>
  • 方法二: 在jquery.wordexport.js文件中找到styles进行样式的修改

 var styles = ".title{color:red;font-size: 18px;}";

修改成功后

三、修改图片大小

在样式中修改图片大小,但导出成word文档时图片大小还是没有修改,原因是导出成文档时,jquery.wordexport.js是使用canvas对img进行处理,若想修改图片在文档中的大小,需在jquery.wordexport.js中进行修改。

  • 解决方案
    在jquery.wordexport.js中对高度和宽度进行修改,修改后word文档中的图片大小即随之更改。

四、修改导出文档名称

点击导出为word文档时,文档名称为默认,可自定义修改文档名称。

  • 解决方案
 jQuery(document).ready(function($) {$("a.page-btn").click(function(event) {$("#page").wordExport("修改后的文档名称");//在引号中添加自定义的文档名称});});


五、修改导出默认方式

文档导出成功后,打开方式默认为web视图,需修改为默认打开方式。

  • 解决方案

将jquery.wordexport.js中的static中的代码替换为下文所贴出的代码即可。

所替换代码

mhtml: {top: "Mime-Version: 1.0\nContent-Base: " + location.href + "\nContent-Type: Multipart/related; boundary=\"NEXT.ITEM-BOUNDARY\";type=\"text/html\"\n\n--NEXT.ITEM-BOUNDARY\nContent-Type: text/html; charset=\"utf-8\"\nContent-Location: " + location.href + "\n\n<!DOCTYPE html>\n" +"<html xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" xmlns:m=\"http://schemas.microsoft.com/office/2004/12/omml\" xmlns=\"http://www.w3.org/TR/REC-html40\">\n_html_</html>",head: "<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n<style>\n_styles_\n</style>\n<!--[if gte mso 9]><xml><w:WordDocument><w:View>Print</w:View><w:TrackMoves>false</w:TrackMoves><w:TrackFormatting/><w:ValidateAgainstSchemas/><w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid><w:IgnoreMixedContent>false</w:IgnoreMixedContent><w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText><w:DoNotPromoteQF/><w:LidThemeOther>EN-US</w:LidThemeOther><w:LidThemeAsian>ZH-CN</w:LidThemeAsian><w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript><w:Compatibility><w:BreakWrappedTables/><w:SnapToGridInCell/><w:WrapTextWithPunct/><w:UseAsianBreakRules/><w:DontGrowAutofit/><w:SplitPgBreakAndParaMark/><w:DontVertAlignCellWithSp/><w:DontBreakConstrainedForcedTables/><w:DontVertAlignInTxbx/><w:Word11KerningPairs/><w:CachedColBalance/><w:UseFELayout/></w:Compatibility><w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel><m:mathPr><m:mathFont m:val=\"Cambria Math\"/><m:brkBin m:val=\"before\"/><m:brkBinSub m:val=\"--\"/><m:smallFrac m:val=\"off\"/><m:dispDef/><m:lMargin m:val=\"0\"/> <m:rMargin m:val=\"0\"/><m:defJc m:val=\"centerGroup\"/><m:wrapIndent m:val=\"1440\"/><m:intLim m:val=\"subSup\"/><m:naryLim m:val=\"undOvr\"/></m:mathPr></w:WordDocument></xml><![endif]--></head>\n",body: "<body>_body_</body>"}

修改成功后

以上便是通过jq插件实现页面导出为word文档的总结。

前端实现HTML导出为word文档相关推荐

  1. 前端报表导出成word文档(含echarts图表)

    前端报表导出成word文档(含echarts图表) 一.问题背景: 前端vue做的各种维度的报表,原来是通过前端整体截屏导出成PDF,但部分报表在遇到跨页时会被截断,客户体验极差.然后又考虑客户可能需 ...

  2. HTML导出生成Word文档

    前言 在某某夜黑风高的一天即将下班的时候,老板召集公司大神们,进行了一个紧急会议,此会议主要目的是老板的客户提出了一些小需求, 有一个前端小 需求,需要将前端HTML导出为Word文档,因为没有做过此 ...

  3. 将HTML导出生成word文档

    前言: 项目开发中遇到了需要将HTML页面的内容导出为一个word文档,所以有了这边随笔. 当然,项目开发又时间有点紧迫,第一时间想到的是用插件,所以百度了下.下面就介绍两个导出word文档的方法. ...

  4. 导出备忘录Word文档

    这里写自定义目录标题 /*** 导出备忘录Word文档** @param id* @return*/@Overridepublic String exportWordMemo(Long id) thr ...

  5. js将html转为word文档,js将html导出到word文档(含echarts图表)

    需求 在开发项目途中遇到了一个需求,就是将一个整个HTML界面导出到word文档,其中包含了echarts图表,经过一番折腾,终于完成了~~~(鸡肋),过程中用到了几个插件,总结了一下几个步骤,希望可 ...

  6. js将HTML导出生成word文档

    在项目开发中中,遇到将HTML导出生成word文档,刚开始在网上找了很多资料,基本都是jQuery中的插件jquery.wordexport.js,刚开始是不想用这个的,这个要引用另一个插件FileS ...

  7. 用js将HTML文本导出生成word文档

    在项目开发中中,遇到将HTML导出生成word文档,刚开始在网上找了很多资料,基本都是jQuery中的插件jquery.wordexport.js,刚开始是不想用这个的,这个要引用另一个插件FileS ...

  8. Java项目中利用Freemarker模板引擎导出--生成Word文档

    应邀写的一篇文章:Java项目中利用Freemarker模板引擎导出--生成Word文档 资源下载:https://download.csdn.net/download/weixin_41367523 ...

  9. Java使用POI生成柱状图导出到word文档(柱状图)

    本篇文章主要介绍,如何使用Apache POI组件生成柱状图导出到word文档中,具体步骤看下文. 一.实现效果 Java使用POI技术生成柱状图导出到word文档中,最终生成的柱状图如下所示: 二. ...

最新文章

  1. jhello框架-ajax
  2. php数独游戏开发,使用vue如何开发数独游戏
  3. 几何画板200个经典课件_几何画板Sketchpad Mac(数学教学软件)中文版
  4. 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-目录
  5. Spring中你不知道的注入方式
  6. Python 爬虫利器之 Pyppeteer 的用法
  7. 操作系统中的互斥锁与条件变量
  8. 虚拟机“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
  9. ubuntu无法打开系统设置的解决办法
  10. 数字图像处理-冈萨雷斯(学习笔记)
  11. 工作了17年,2021年双11是我见过有史以来“撸腾讯云羊毛”最狠的一次,血赚
  12. 登陆成功率99% 云知声携手平安好医生推声纹登录系统
  13. JS获取当前时间的日周月年的开始结束时间
  14. 个人所得税年度应纳税额抵扣-云服务器ECS入门-考试题及答案-申报更正流程
  15. 论文翻译-A Comprehensive Survey on Graph Neural Networks《图神经网络GNN综述》
  16. 读书笔记(三)--世界上最伟大的推销员
  17. 【转】DDR3中的ODT
  18. Mybatis源码解析——入门级
  19. 麦麦养老:养老照护服务关键痛点及智慧养老解决路径实践案例解析
  20. git和coding 基本操作

热门文章

  1. 记一次给博友答疑(shiro相关)
  2. 关于HOOK,如何通过钩子截获指定窗口的所有消息
  3. 使用gitbook记录笔记
  4. PHP合成推广微信推广海报 PHP合成图片 PHP在图片上添加文字 PHP制作图片
  5. iso马甲包是什么意思?如何制作上传
  6. 第23次CSP认证(202109)
  7. 316不锈钢盐雾测试
  8. jpa vue管理系统_如何通过利用Java流获取类型安全和直观的Hibernate / JPA查询
  9. 怎么用计算机输入名字,怎么用电脑起名字
  10. ESP8266 MP3制作——关于SelectionList从源码中改代码的一次经历