百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 文章教程 > 正文

好用的JavaScript客户端PDF插件——jsPDF

yund56 2025-07-18 23:17 3 浏览

介绍

和往常一样,jsPDF是一个开源的客户端的PDF解决方案,在之前的文章中已经介绍过几个Web端和PDF相关的库,jsPDF同样是一个不错的客户端PDF引 SDK,你可以通过jsPDF在客户端完成相关操作,它包含了非常丰富的API,帮助你完成一系列的复杂操作!可以说它是相当领先的HTML5客户端解决方案了!



Github

https://github.com/MrRio/jsPDF

Github star数17k+,可以说相当受欢迎了!


安装使用

一般情况下我们会考虑使用包管理,常见的就是npm了,因此安装非常简单

npm install jspdf --save

或者也可以使用yarn

yarn add jspdf

接下来就是制作你的文件的时候了

默认导出为a4纸张,纵向,使用毫米表示单位


var doc = new jsPDF()
doc.text('Hello world!', 10, 10)
doc.save('a4.pdf')

如果要更改纸张尺寸,方向或单位,可以执行以下操作:


var doc = new jsPDF({
 orientation: 'landscape',
 unit: 'in',
 format: [4, 2]
})
doc.text('Hello world!', 1, 1)
doc.save('two-by-four.pdf')

使用UTF-8 / TTF

PDF中的14种标准字体仅限于ASCII代码页。如果要使用UTF-8,则必须集成自定义字体,该字体提供所需的字形。jsPDF支持.ttf文件。因此,如果你希望在pdf中使用中文文本,则您的字体必须具有必要的中文字形。因此,请检查您的字体是否支持所需的字形,否则它将显示空白而不是文本。



要将字体添加到jsPDF,在
/fontconverter/fontconverter.html中使用官网提供的fontconverter。fontconverter将创建一个js文件,其中包含提供的ttf文件的内容作为base64编码的字符串和jsPDF的附加代码。你只需将生成的js-File添加到项目中即可。然后,就可以在代码中使用setFont-method并编写UTF-8编码文本。



Angular/Webpack/React等配置

常规操作

import * as jsPDF from 'jspdf'

有些框架,必须像下面这样

import jsPDF from 'jspdf';


API

jsPDF的api非常丰富,在这里就不提供相关地址了,在Github必然找的到,本文重点不在于介绍jsPDF的用法,将部分API截图展示,通过名称大致能猜到一些意思,具体用法需要参考官网文档:













从截图来看,其文档特别的详细,具体到每一个API在js文件的行数,便于阅读源代码,包括参数以及返回值都非常明确:



在线DEMO

官方提供了一个在线demo,可以直接运行代码,感兴趣的可以先尝试一下:



总结

jsPDF是笔者见过类似产品中较为突出的,几乎涵盖了所有PDF相关操作,非常详细的文档也让开发者,轻松上手,在线demo还能快速学习,如果你的项目对PDF的操作比较多,不妨尝试下jsPDF,唯一需要注意的就是解决字体问题,但是上文也提到过解决方案,感兴趣的可以进行体验!

相关推荐

什么是JavaScript,它能做什么(javascript干啥的)

一个页面分成三个部分,结构,样式,行为。HTML代表了页面的结构(骨架),CSS代表了页面的样式(皮肤),JavaScript代表了页面的行为(这种行为是被动的)。主动的行为需要一个大脑,后端作为我们...

一款自定义字幕内容的截屏生成器:fake-screenshot!

这是一个可以伪造任何网站界面截图的工具。但本工具的目的其实不是破坏,而是为了警告:不要轻易相信网上看到的“截图”!本工具的目的是传递(如上的)信息,而不是破坏。因此所有经过本工具制作出来的截图都被打...

JavaScript-JavaScript 219

1)JavaScript简介JavaScript:是一种脚本语言(程序),脚本是一条条的文字命令,执行时由系统的一个解释器将其一条条的翻译成机器可识别的指令然后执行,脚本语言是不经编译而是解释执行的,...

Vue3 神级工具:终于可以实现打字的动画效果了!

Typed.js是一个轻量级的JavaScript库,用于在网页上实现打字机动画效果。它支持自定义打字速度、循环模式、回调函数等,非常适合用于动态展示标语、代码片段或交互式文本效果。核心特性打字...

好用的JavaScript客户端PDF插件——jsPDF

介绍和往常一样,jsPDF是一个开源的客户端的PDF解决方案,在之前的文章中已经介绍过几个Web端和PDF相关的库,jsPDF同样是一个不错的客户端PDF引SDK,你可以通过jsPDF在客户端完成相...

历时10个多月,学习了这132 个CSS 特效,还不来学习

这132个特效,是我历时10个多月在油管一个一个跟着敲出来的,为了加强记忆,每个练习,我都录制了视频,在这里分享出来给大家。大家可能又会调侃了,你是工作不饱和吧,有时间做这些。其实,我目前工作还是挺饱...

Flux.1 Kontext:用文字编辑图像(flux.1.kontext)

FLUX.1Kontext是来自BlackForestLabs的一款新图像编辑模型。它是用于通过文本提示编辑图像的最佳模型之一,并且是FLUX.1家族的最新成员。在我们的测试中,我们发...

采用Stylus 扩展让你的浏览器字体变得更美观

今天锋哥带大家来玩一个有意思的操作。我对字体有着很高的敏感度,我对网页默认的字体,不是很满意。突如其来的疯狂念头,我能不能把我们网页的所有字体,就是默认的字体,强制改为我喜欢的这个霞鹜文楷字体呢?答案...

JavaScript奇技淫巧:隐形字符(javascript字符型转数值型方法)

JavaScript奇技淫巧:隐形字符本文,分享一种奇特的JS编程技巧,功能是:可以使字符串“隐形”、不可见!效果展示如下图所示,一个字符串经物别的操作之后,其长度有621字节,但内容却是“隐形”不可...

Axure9原型设计:能增删改数据的动态饼图(2)

在本篇中,我们将延续上篇的设计思路,进一步探索如何在Axure9中实现“可增删改数据”的动态饼图效果。最近无聊,在网上闲逛,看到一篇教程《能增删改数据的动态饼图》,故仿照实践。因信息量较大,分三篇...

JavaScript奇淫技巧:命令行语法高亮

JavaScript奇淫技巧:命令行语法高亮本文,将实现命令行输出带有语法高亮、带行号的JS代码。效果如下图所示:对于JS程序员而言,这个效果是有些惊喜的。而实现起来,却似乎是出乎意料的简单。直接上源...

JS如何判断文字被ellipsis了?(js判断字符是否存在)

原文来源于:程序员成长指北;作者:嘉琪coder如有侵权,联系删除前言如果想要文本超出宽度后用省略号省略,只需要加上以下的css就行了。ellipsis{overflow:hidden;...

前端资源-实用的JS插件(前端js工具)

现在前端资源越来越多,有创意十足的,有实用性高的,这些对于设计师和前端人员来说都是不错的灵感和资源,所以我们可多关注这些信息,对自己的专业技术有也会帮助的。今天设计达人网为大家分享有:页面进度条、图像...

p5.js 中文入门教程(p5js编辑器不能用)

本文简介点赞+关注+收藏=学会了本文的目标是和各位工友一起有序的快速上手p5.js,会讲解p5.js的基础用法。本文会涉及到的内容包括:项目搭建p5.js基础2D图形文字图形样式...

创建酷炫动画效果的10个JavaScript库

Dynamics.js是设计基于物理规律的动画的重要JavaScript库。它可以赋予生命给所有包含CSS和SVG属性的DOM(文本对象模型)元素,换句话说,Dynamics.js适用于所有Java...