公司之前是通过 Jaspersoft Studio软件,生成一个.jasper文件模板,通过模板中的sql语句,查询信息,生成pdf传给前端显示或者下载。

  但是觉得会占用带宽,浪费服务器资源,并且这件事前端js也可以实现,在网上找到了国外某神人开发的pdfmake.js这个库,觉得很棒,英文比较棒的同学可以前往官网自学:

  pdfmake.js官网:http://pdfmake.org/

  这里只是做了个日常使用的例子:

<!DOCTYPE html>
<html>
<head>
<title></title>
<%--前端生成pdf的插件--%>
<script type="text/javascript" src="${localCtx}/resources/jquery/pdfmake.js"></script>
<%--配合pdfmake.js的字体库(只含有仿宋和黑体),如何更改vfs_fonts.js,参照官网--%>
<script type="text/javascript" src="${localCtx}/resources/jquery/vfs_fonts.js"></script>
</head><script type="text/javascript">
//打印的动态信息
var pdf_data = {xfjName: '李二麻不服火车站扣脚被罚200元',time:'2017年12月25日15时30分',address:'英国伦敦唐宁街10号',dcr:'斯密斯',dcr_dw:'山东路123号6单元2门洞602室',jlr:'汤姆',jlr_dw:'中南海1号',bdcr:'唐纳德·川普',content:'问:说的是大家按时打卡打卡.\n答:时代精神的房东房客第三方接口货到付款'
}
var dd = {pageSize:'A4',//纸张大小pageOrientation:'portrait',//排版,默认:'portrait'(竖版),'landscape'(横板)compress: true,//pdf压缩,默认:truepageMargins: [ 40, 60, 40, 60 ],//页边距(左、上、右、下)//pdf中内容的显示content: [{ text: pdf_data.xfjName + '信访事项复查(复核)调查(约谈)笔录', style: 'header' },{ text: '时间:' + pdf_data.time, style: 'content' },{ text: '调查地点:' + pdf_data.address, style: 'content' },{ text: '调查人:' + pdf_data.dcr + '&#12288;&#12288;工作单位:' + pdf_data.dcr_dw, style: 'content' },{ text: '记录人:' + pdf_data.jlr + '&#12288;&#12288;工作单位:' + pdf_data.jlr_dw, style: 'content' },{ text: '被调查人:' + pdf_data.bdcr, style: 'content' },{ text: pdf_data.content, style: 'content' }],//文字样式styles: {header: {fontSize: 20,//字体大小bold: true,//粗体(如果导入的字体库中没有相应文字的粗体,请不要加)alignment:'center'//居中对齐},content: {fontSize: 14,italics: true,//字体的一种(如果导入的字体库中没有相应的字体,请不要加)//alignment: 'right'//居右对齐}},defaultStyle: {font: 'fangsong'}
};
pdfMake.fonts = {fangsong: {normal: 'fangsong.ttf',bold: 'fangsong.ttf',italics: 'fangsong.ttf',bolditalics: 'fangsong.ttf'}
};
$(function(){   $("#btn_printtt").click(function(){//pdfMake.createPdf(dd).download("名字没想好哦");//下载//pdfMake.createPdf(dd).open();//打开 参数:window(本页打开)// pdfMake.createPdf(dd).getBase64().then(function(data) {//将pdf转成base64//      alert(data);// });pdfMake.createPdf(dd).getDataUrl().then(function(pdf_url){$("#modal_data_pdf").modal({backdrop:'static'});//打开模态框var targetElement = document.querySelector('#modal_data_body_pdf');var iframe = document.querySelector('#iframe_pdf');iframe.src = pdf_url;//给iframe设置src$(iframe).css({height:'500px', width:'100%'});});});
});
</script><body><!-- 查看pdf按钮--><button type="button" id="btn_printtt">查看pdf</button><!-- pdf显示位置--><div id="modal_data_body_pdf"><iframe id="iframe_pdf"></iframe></div>
</body></html>

前端生成pdf的js库-pdfmake.js的简单使用相关推荐

  1. web端生成pdf,前端生成pdf导出并自定义页眉页脚

    web前端生成pdf文档 描述 解决办法 技术栈 逻辑 直接上代码,后边再唠叨,注释写的还算清晰吧 用到的方法 模拟数据 最终版截图扔这儿一个 开始唠叨 需求 梳理 决定 缺点 描述 前端导出pdf文 ...

  2. 前端生成PDF 文件教程+在线demo案例

    个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈 PDF 简介 PDF 全称Portable Document Format (PDF)(便携文档格式),该格式的显示与操作系统.分辨 ...

  3. 前端生成pdf并导出,解决了图片不能绘制的问题.(一)

    生成pdf的方式有多种,前端后端都可生成,各有优缺点,本文主要讲解前端生成pdf的方式,并解决了图片不能绘制的问题.前端生成,使用 html2canvas进行绘制.该方式操作简单,浏览器端即可完成,不 ...

  4. React jsPdf+html2canvas 前端生成pdf(分页截断 + 图片质量)

    前言 记录一下最近实现的前端生成pdf的功能,以及遇到的坑和解决方式 由于笔者1年多没碰过react了,之前也比较少使用hooks,实现这个功能也是想复习一下之前的知识,如果有什么写得不好的请指出交流 ...

  5. highlight.js css,JS库之Highlight.js的用法详解

    下载到本地后,新建个页面测试 1.在head中加入css和js的引用 highlight hljs.initHighlightingOnLoad(); 2.添加对应要显示的内容 # 读取文件内容 de ...

  6. 【卡法 常用 ckl.js 库】: js汇合 表单验证 cookie设置 日期格式 电话手机号码 email 整数 小数 金额 检查参数长度...

    [卡法 常用js库]: js汇合 表单验证  cookie设置  日期格式  电话手机号码  email  整数  小数  金额   检查参数长度 // +---------------------- ...

  7. 前端生成PDF文件实现方案

    一.技术选型 1.html转换成canvas后生成图片导出pdf(本文选用) html转canvas插件:html2canvas是一款将HTML代码转换成Canvas的插件: canvas生成pdf: ...

  8. vue前端生成PDF文档+电子印章并导出(不用后端)

    效果图: 环境安装 将页面html转换成图片 npm install --save html2canvas 将图片生成pdf npm install jspdf --save 创建htmlToPdf. ...

  9. 前端生成pdf 下载

    前端实现HTML转PDF下载的两种方式 - 简书 方式一:使用html2canvas和jspdf插件实现 该方式是通过html2canvas将HTML页面转换成图片,然后再通过jspdf将图片的bas ...

最新文章

  1. JavaScript碎片
  2. 一个很简单的H5的转盘抽奖的(主要用的是css3的属性)
  3. 专家:电脑看多了掉头发怎么办?
  4. ADO之connection
  5. java并发之Future与Callable使用
  6. android 状态栏一体化 fragment,单Activity多Fragment动态修改状态栏颜色功能
  7. java 装饰流_java装饰流的使用【转】
  8. 惠普收购Palm意在遏制同系竞争
  9. 服务器传文件的工具,向服务器传文件的工具
  10. CMOS、BIOS介绍
  11. 转移性乳腺癌的基因组图谱突出了突变和特征频率的变化
  12. vb计算机器,科学计算器vb代码
  13. html中的表格背景透明度标签,透明度 背景
  14. 虚拟机VMware下载与安装教程(详细)
  15. 为什么不居中(CellRangeAddress),关于excel导出合并单元格
  16. ‘findstr‘ 不是内部或外部命令,也不是可运行的程序或批处理文件...
  17. 【English】十大词性之感叹词(感叹句)
  18. (二十五)套利定价理论(APT)
  19. 库存物资管理系统(过关测试)
  20. 计算机专业英语 读书笔记

热门文章

  1. 如何制作笔记本操作系统恢复盘
  2. 苹果首款自研芯片 M1 惊艳亮相,带来最强三款 Mac 电脑!
  3. EntityComponentSystemSamples学习笔记
  4. 虚幻Material
  5. 懒人版小学生1-6年级计算题练习(口算练习)可直接电脑上答题或者打印题目
  6. 锤子开源 Smartisan T1/T2、坚果 Pro 等手机内核源代码
  7. 如何通过电影学英语 English through Movies
  8. Mac item2 配色,大小写敏感及常用快捷键
  9. 北京协和医学院823计算机原理,2017年北京协和医学院病原生物学研究所823计算机原理考研仿真模拟题...
  10. MarkdownPad2自动生成侧边导航栏目录