公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云
最近论坛里有一位网友在实际用 jsPDF 插件,遇到了问题。我这个整理一下关于这个插件的用法。
jsPDF HTML5是一个客户端解决方案生成pdf文件。适合活动门票、报告、证书,等等。 它将在IE6+,Firefox 3 +,Chrome,Safari 3 +,Opera。IE9下工作。
jspdf 官方地址:https://parall.ax/products/jspdf
jspdf 支持以下几种内容:
- Images 图片
- Font faces 字体
- Two page Hello World 分页显示内容
- Circles 椭圆图形等
- Font sizes 设置字体大小
- Landscape 预览设置,打印,大小缩放等
- Lines 线条,简单图表
- Rectangles 矩形图形
- String Splitting 字符串拆分,自动换行
- Triangles 支持三角形
除了上面的特色外,还支持大小缩放,大小调整,打印,下载等功能。
jspdf 实例
jspdf 的使用非常简单,只需导入对应js,编写以下代码即可。
var doc = new jsPDF();
doc.text(20, 20, 'Hello world.');
doc.save('Test.pdf');
完整代码如下:
<!DOCTYPE html>
<html>
<head>
<title>Downloadify</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<style type="text/css" media="screen">
body {background: #fff; width: 500px; margin: 20px auto;}
input, textarea, p { font-family: 宋体, 黑体; font-size: 12pt;}
input, textarea { border: solid 1px #aaa; padding: 4px; width: 98%;}
</style>
<script type="text/javascript" src="js/swfobject.js"></script>
<script type="text/javascript" src="js/downloadify.js"></script>
<script type="text/javascript" src="js/jspdf.js"></script>
<!-- <script type="text/javascript" src="js/downloadify.min.js"></script> -->
<script type="text/javascript">
window.load=function(){
Downloadify.create('downloadify',{
filename: function(){
return document.getElementById('filename').value;
},
data: function(){
var doc = new jsPDF();
doc.text(20, 20, document.getElementById('data').value);
doc.addPage();
doc.text(20, 20, document.getElementById('data').value);
return doc.output();
},
onComplete: function(){ alert('成功保存文件!'); },
onCancel: function(){ alert('您已经取消保存文件'); },
onError: function(){ alert('出现错误了'); },
swf: 'js/downloadify.swf',
downloadImage: 'js/download.png',
width: 100,
height: 30,
transparent: true,
append: false
});
}
</script>
</head>
<body onload="load();">
<input type="text" name="filename" value="文件名.pdf" id="filename" /><br />
<textarea cols="60" rows="10" name="data" id="data">it seem do not support to Chinese</textarea>
<p id="downloadify">You must have Flash 10 installed to download this file.</p>
</body>
</html>
jspdf 插件下载,大家可以到官网上自行下载。
中文乱码处理
jsPDF 插件对中文支持不够友好,会出现乱码问题。目前比较好的解决办法是,中文部分使用图片替换。还有一种做法是制作一个文字包。这种做法需要对源码有很深的理解。
感觉这样麻烦的,可以把所有内容都加入 Canvas 中,使用 html2canvas 插件将 canvas 中内容转换成图片,然后jspdf 中显示图片即可。关于 html2canvas 的内容,点这里进行学习。

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!
本文原文出处:业余草: » 使用 jQuery jsPDF 插件生成pdf文档并解决中文乱码问题