参考文件:http://jackyrong.iteye.com/blog/2169683

https://my.oschina.net/aruan/blog/418980

    https://segmentfault.com/a/1190000013168209

js引用文件地址:https://files.cnblogs.com/files/likui-bookHouse/tableExport.jquery.plugin-master.rar

html文件代码:

<html>
<head>
<title>Export html table to excel and csv using jquery</title>
<script src="~/Content/js/jquery-1.7.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css">
<script type="text/javascript" src="~/Content/js/excel/jquery.base64.js"></script> <script type="text/javascript" src="~/Content/js/excel/tableExport.js"></script> <script type="text/javascript" src="~/Content/js/excel/jspdf/libs/sprintf.js"> </script> <script type="text/javascript" src="~/Content/js/excel/jspdf/jspdf.js"></script>
<script type="text/javascript" src="~/Content/js/excel/jspdf/libs/base64.js"></script> </head>
<body>
[align=right]
<br><br><br>
<button class="btn btn-success" onClick="$('#customers').tableExport({type: 'excel', escape: 'false'});">Excel Export</button>
<button class="btn btn-success" onClick="$('#customers').tableExport({type: 'pdf', escape: 'false'});">CSV Export</button>
<br><br>
[/align]
<table id="customers" class="table table-striped table-bordered">
<thead>
<tr class='warning'>
<th>Country</th>
<th>Population</th>
<th>Date</th>
</tr>
</thead>
<tbody>
<tr>
<td>Chinna</td>
<td>,,,</td>
<td>March , </td>
</tr>
<tr>
<td>India</td>
<td>,,,</td>
<td>March , </td>
</tr>
<tr>
<td>United States</td>
<td>,,</td>
<td>March , </td>
</tr>
<tr>
<td>Indonesia</td>
<td>,,</td>
<td>July , </td>
</tr>
<tr>
<td>Brazil</td>
<td>,,</td>
<td>July , </td>
</tr>
<tr>
<td>澳大利亚</td>
<td>2018年3月20日</td>
<td>二零一八年三月二十日</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

显示效果:

导出pdf(解决中文乱码问题)

导出过程中发现中文显示乱码,根据文档发现jsPDF不支持中文,网上资料是使用html2canvas方式转换canva方式,并不是十分灵活。后根据项目jsPDF-CustomFonts-support引入中文字体,解决了导出pdf后中文字体显示乱码的问题。
将项目源码下载到本地,dist文件夹下为相关脚本,font文件夹下为相关字体文件。

脚本实现:tabExport.js 中的代码

}else if(defaults.type == 'pdf'){

                    //var doc = new jsPDF('p','pt', 'a4', true);
//doc.setFontSize(defaults.pdfFontSize); var doc = new jsPDF('p', 'pt', 'a6'); //a4:表示打印的pdf纸张大小(这个设置得越大,会显得内容越小)
doc.addFont('NotoSansCJKtc-Regular.ttf', 'NotoSansCJKtc', 'normal'); //添加字体
//pdf标题设置
doc.setFont('NotoSansCJKtc'); //设置字体
//pdf标题设置
doc.text(, , '导出标题'); //并且设置字体大小为5。(之前采用它默认的字体大小,打印的pdf字体都堆在一起了。都是泪啊!)
doc.setFontSize();

好了,pdf文件打印出来了,看效果吧!

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第二种打印pdf的方法(把文字部分转换为图片类型,然后再打印成pdf文件)

4、具体操作
1)下载jspdf插件,官网有。
2)html页面引用两个js文件 jspdf.debug.js  和 html2canvas.js  (利用该插件将html页面转化成图片,在插入到pdf中)

这里我没引入jspdf.debug.js,而是引用的jspdf.js(它们都包含了所有文件)

3)编写一个js方法 即可实现 转化pdf。并可以指定导出区域。

pdf.js中的方法代码:

function exportPhotoPdf() {
if(confirm("您确认下载打印pdf的功能模板?")){
var pdf = new jsPDF('p','pt','a4');
// 设置打印比例 越大打印越小
pdf.internal.scaleFactor = ;
var options = {
pagesplit: true, //设置是否自动分页
"background": '#FFFFFF' //如果导出的pdf为黑色背景,需要将导出的html模块内容背景 设置成白色。
};
var printHtml = $('#customers').get(); // 页面某一个div里面的内容,通过id获取div内容
pdf.addHTML(printHtml,, , options,function() {
pdf.save('pdf打印功能测试.pdf');
});
}
}

点击打印按钮,打印效果如下:

总结:这种方法导出的pdf格式效果最理想,但是不支持中文。并且相对于第一种方法,清晰度不够。第一种方法虽然很清晰,但样式消失了。算是各有各的优点吧!

jquery插件导出excel和pdf(解决中文乱码问题)的更多相关文章

  1. Eclipse导出JavaDoc(并解决中文乱码问题)

    一. 使用Eclipse生成注释文档 使用eclipse生成文档(javadoc)主要有三种方法: 1,在项目列表中按右键,选择Export(导出),然后在Export(导出)对话框中选择java下的 ...

  2. Java导出Excel表(poi)名中文乱码问题处理

    <pre name="code" class="java">String _filename = ValidateTools.date2Str(da ...

  3. php不使用插件导出excel

    php不使用插件导出excel的简单方法,首先获取需要导出的数据的数组,数组的格式在下面. 之后就是定义文件名称和需要导出的excel的样式,最后就是循环数组,输出数据了 代码: $filename= ...

  4. 导出excel和PDF小结 vba

    最近接触了一个关于Access工具的项目,所以整理下需要使用的方法. 功能要求简介: 1.将数据表中的数据导出到excel和PDF 2.并根据某个字段名称分sheet输出. 3.无模板方式 方案简介: ...

  5. Debian 6解决中文乱码

    DEBIAN下中文显示 一.首先检查LOCALE情况 说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在. 1.挂载ISO文件包,前8个ISO包就可以(这里不在 ...

  6. Sublime Text 2—解决中文乱码

    Sublime Text 2是一个非常棒的代码及文本编辑器,绿色小巧.速度飞快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等,有着许多其他编辑器没 ...

  7. jxl解析excel时,处理中文乱码问题

    jxl解析excel时,处理中文乱码问题 一般出现较多的问题是,当exce中包含了中文或特殊字符时,在解析时候就会出现乱码现象. 解决方法为: InputStream in = new FileInp ...

  8. 增加UBUNTU字符集 解决中文乱码问题

    对GBK,GB2312,GB18030字符集的支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题. 我想这个问题肯定有其他人 ...

  9. zabbix解决中文乱码问题(没有测试成功)

    zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [root@za ...

随机推荐

  1. Django model转字典的几种方法

    平常的开发过程中不免遇到需要把model转成字典的需求,尤其是现在流行前后端分离架构,Json格式几乎成了前后端之间数据交换的标准,这种model转dict的需求就更多了,本文介绍几种日常使用的方法以 ...

  2. js便签笔记(9)——解读jquery源码时记录的一些知识点

    近来一直利用业余时间在看jquery2.1.1源码,大约看了两千行了.平时看的时候,做了一些笔记,贴出来分享. 1. Array.prototype.slice.call 可以将伪数组转化为真正的数组 ...

  3. The case for learned index structures

    17年的旧文,最近因为SageDB论文而重读. 文章主要思路是通过学习key的顺序.结构等来预测record在位置.存在与否等.效果方面,据称部分场景下,相对b-tree可以优化70%的内存占用. 最 ...

  4. Spring Boot项目的内嵌容器

    一.关于容器 刚才开始使用spring boot的开发者会有种很直观的感觉,servlet容器“不见了”.之前开发web项目,都是把程序写完后部署到servlet容器(比如Tomcat),但是使用sp ...

  5. Web开发者应知的URL编码知识

    原文出处:http://blog.jobbole.com/42246/ 本文首先阐述了人们关于统一资源定位符(URL)编码的普遍的误读,其后通过阐明HTTP场景下的URL encoding 来引出我们 ...

  6. UVA 227 Puzzle(基础字符串处理)

    题目链接: https://cn.vjudge.net/problem/UVA-227 /* 问题 输入一个5*5的方格,其中有一些字母填充,还有一个空白位置,输入一连串 的指令,如果指令合法,能够得 ...

  7. ASP.NET MVC加载用户控件后并获取其内控件值或赋值

    有网友看了这篇<ASP.NET MVC加载ASCX之后,并为之赋值>http://www.cnblogs.com/insus/p/3643254.html 之后,问及Insus.NET,不 ...

  8. Html.DropDownListFor练习(2)

    下午有做了练习<Html.DropDownListFor练习>http://www.cnblogs.com/insus/p/3382575.html 在实现过程中,需要创建一个List&l ...

  9. EPPlus批量插入图片到Excel

    #region 测试EPPlus插入图片        public static void Createsheel2()        {                      WebClien ...

  10. Java使用递归的方法进行冒泡排序

    对于递归来说,我只了解它的概念,没有具体使用过,近期也是尝试着用递归写了一下冒泡排序和大家分享,希望能帮助大家了解递归 递归是什么?通俗的讲:在方法内部调用自己 花了几分钟整出来的,下面是递归冒泡排序 ...