最近论坛里有一位网友在实际用 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 的内容,点这里进行学习。
: » 使用 jQuery jsPDF 插件生成pdf文档并解决中文乱码问题
原创文章,作者:Carrie001128,如若转载,请注明出处:https://blog.ytso.com/251219.html