龙空技术网

前端生成PDF,这几个方案你一定要知道

前端小渔歌 1805

前言:

而今咱们对“前端pdf生成”大体比较关心,咱们都需要了解一些“前端pdf生成”的相关内容。那么小编同时在网摘上搜集了一些对于“前端pdf生成””的相关内容,希望姐妹们能喜欢,兄弟们快快来了解一下吧!

我是小渔歌,点击右上方“关注”,每天为你分享【前端技术知识】干货。

可能有不少小伙伴,在业务中遇到需要前端生成pdf的功能。

今天就为大家介绍几款,前端生成pdf的开源库。

这里只说一下这几款方案的基本功能,需要的可以自行查看官方文档,不懂的可以私信我。

方案一jsPDF

new jsPDF(orientation, unit, format)

功能

支持文本支持图片支持html支持设置字体,文字大小等等方案二pdfkit

var doc = new PDFDocument();var stream = doc.pipe(blobStream());

这个开源库既支持浏览器端也支持node服务端。

功能

支持文本支持图片支持html支持设置字体,文字大小等等

这个开源库还提供了丰富的绘制各种形状,以及线条的api,最主要的是他还支持svg path[中国赞]。

方案三pdfmake

pdfMake.createPdf(docDefinition).download();

这个开源库既支持浏览器端也支持node服务端。

pdfmake实际上是对pdfkit的封装,pdfkit有的功能pdfmake都有,只是用起来更简洁了。

更重要的是pdfmake支持分栏[中国赞]。

方案四pupetter

const puppeteer = require('puppeteer');(async () => {  const browser = await puppeteer.launch();  const page = await browser.newPage();  await page.goto(';);  await page.pdf({path: 'example.pdf'});  await browser.close();})();

他是利用在node服务端运行一个无头chrome浏览器来实现的。

这个方法就比较简单暴力了,直接打开一个网页,将这个网页的内容生成pdf。

注意:这个网页内容尺寸得控制好。

而且这个有点坑的地方就是,这个东西在本地跑,字体是一点毛病没有的,但是部署到云端就有问题了,所有字体都失效了,这个时候需要你在docker容器中装各种字体,此处脑袋有点大,感兴趣的可自行研究。

总结

jsPDF只支持浏览器端,pdfkit与pdfmake既支持浏览器端也支持node服务端,pupeteer支持服务端,各位可以根据自己的业务需求自行选择。

大家还知道其他生成PDF的方案嘛?可以在评论区留言哦,共同学习。

往期精彩内容

CSS实现拖拽功能,你是认真的吗?

FormData对象,知道吗?它可以让你在表单数据处理上事半功倍?

flex不香吗,你还在傻傻地用float吗

作者介绍

小渔歌,90后前端研发工程师,热爱生活,一个在劳动中不断学习的人,愿我们共同进步,点关注不迷路[中国赞][作揖]。

标签: #前端pdf生成 #docker中装docker