关键词不能为空

当前您在: 主页 > 文科综合 >

JS导出PDF插件的方法(支持中文、图片使用路径)

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 19:03
tags:

-

2021年3月3日发(作者:eup)







WEB


上想做一个导出


P DF


的功能,发现


jsPDF


比较多人 推荐,遗憾的是不支持中








pdfmak e





地< /p>









< p>








/

查看。在使用过程中,还发现图片的插入是相对繁琐的一


件事。




针对这些问题,本文的主要内容可分为三部分:





•pdfmake< /p>


的基本使用方法;






如何解决中文问题


;




< br>如何通过指定图片地址插入图片。





pdfmake


的基本使用方法





1.


包含以下两个文件





<script src=




<script src=




2.



JS


代码中声明一个


Document-definition


对象,这个是


pdfmake


自己的术语。 简单


点说,


就是创建一个至少包含


co ntent


属性的对象。


然后就可以调用


pdfMake


的方法导出


PDF



具体见如下代码:





<script type=




//


创建


Document- definition


对象





var dd = {




content: [




'One paragraph',




'Another paragraph, this time a little bit longer to make sure,


this line will be divided into at least two lines'




]




};




//


导出


PDF




Pdf(dd).download();




</script>




按照上例操作,就可以看到提示文 件下载了。关于


pdfmake


的完整教程请登陆


pdfmake


项目查看。





pdfmake


支持中文





三个步骤:





1.



pd fmake


项目网站,把工程都下载下来,然后进入工程目录将字体文件(比如微软


雅黑


.ttf)


放到


examples/fonts


目录下,然后使用


grunt dump_dir


生成新的


vfs_


文 件;





从 上面描述可知该工程是通过


grunt


管理的,如果无相关知识 ,请上网先补习下。





grunt dump_dir


命令会将


fonts


目录下所有文件都打包,因此无用文件请别放进去。





微软雅黑

.ttf


网上一搜一大把,


WINDOWS


电脑系统盘下存放字体的目录也找得到。





2.


回到自己的例子代码中,


JS


代码中修改


pdfMake



fonts


对象,


声明当 前要用到字体:





= {




Roboto: {




normal: '',




bold: '',




italics: '',




bolditalics: ''




},





微软雅黑


: {




normal: '


微软雅黑


.ttf',




bold: '


微软雅黑


.ttf',




italics: '


微软雅黑


.ttf',




bolditalics: '


微软雅黑


.ttf',




}




};





nt- definition


对象中声明默认要使用的字体,具体来说:就是声明一个对象,< /p>


除了


content


属性,还要有一个< /p>


defaultStyle


属性,该


de faultStyle


下面还有再有一个


font



性:





var dd = {




content: [




'


中英文测试


',




'Another paragraph, this time a little bit longer to make sure,


this line will be divided into at least two lines'




],




defaultStyle: {




font: '


微软雅黑


'




}




};




以下为根据如上步骤做的一个完整例子源码:





<!DOCTYPE html>




<html lang=




<head>




<meta charset=




<title>my first export PDF</title>




<script src=




<script src=




<script>




function down() {




var dd = {




content: [





'


中英文测试


',




'Another paragraph, this time a little bit longer to make sure,


this line will be divided into at least two lines'




],




defaultStyle: {




font: '


微软雅黑


'




}




};




= {




Roboto: {




normal: '',




bold: '',




italics: '',




bolditalics: ''




},





微软雅黑


: {




normal: '


微软雅黑


.ttf',




bold: '


微软雅黑


.ttf',




italics: '


微软雅黑


.ttf',




bolditalics: '


微软雅黑


.ttf',




}




};




Pdf(dd).download();




}




</script>




</head>




<body>




<button onclick=


下载


</button>




</body>




</html>




插入图片





在插入图片方面,


jsPDF


要求先将 图片转换成


Data


URL


才行,而


pdfmake


允许直接指


定路径,看 起来是很方便,但这是有条件的,必须是以



作为服务器,或者将 图片放



vfs_


中,


所以总的来说,


用处不大,


还是一样得将图片转换成< /p>


Data URL


形式才行。





为解决此问题,

< br>我写了一个


ImageDataURL


的函数对象,


可同时传入多个图片地址。在


图片都加载完成后,

< br>lete


将被触发,


在回调中通过


a


取出各


个图片的


Data URL


,根据


pdfmake


的要求组织下, 就可正确生成


pdf


了。





ImageDataURL


的原理是通过


H5



canvas


标签,将图片绘制在


canvas


上,然后通过


canvas



toDataURL


得到图像的


Data URL


。使用时请注意浏览器兼容性问题。





以下为将


,


,


依次写入


PDF


的例子,测试




不存在,


PDF


直接忽略。





<!DOCTYPE html>




<html lang=




<head>




<meta charset=




<title>my second export PDF</title>




<script src=




<script src=




<script>




function down() {






var


x


=


new


ImageDataUR L([



-


-


-


-


-


-


-


-



本文更新与2021-03-03 19:03,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/702231.html

JS导出PDF插件的方法(支持中文、图片使用路径)的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文