你不知道的jsPDF
jsPDF大多数做前端开发的可能都使用过,常用来生成pdf文件,一般搭配html2canvas可以将网页内容导出为pdf,然后使用save方法就能下载生成的pdf文件。
一般情况下,基本都能满足我们产品的需求,但是总存在一些不太一般的情况,比如要在小程序和App使用,发现要么是生成的文件内容排版不行,要么是无法预览和下载,下面分享几点不常用但实用的小技巧:
1、如何生成不分页的pdf文件?
其实只需要在初始化时,将第三个参数设置为文档的宽高就行,即:
width和height可以通过html2canvas导出的canvas获取,也可以通过文档对象获取。
2、如何在小程序、App里面生成指定格式的pdf文件?
我们在小程序或App里面使用jsPDF导出文件时,为了用户的体验效果常常是按照手机分辨率来设计UI的,这就导致导出的pdf文件也只能以这种大小显示,我们想要生成指定格式的文件就只得另外处理,可以采取以下两种方式:
(1)通过webview或者iframe嵌入网页的方式,根据需求写好页面,在此页面调用jsPDF生成文件,就能生成指定格式的文件了;
(2)通过jsPDF提供的方法进行绘制,原理类似canvas,调用相应的api即可绘制如图片、文字、线段和图形。
3、如何让导出的pdf文件可以编辑?
我们指定html2canvas是通过绘制图像的方式导出的canvas,以此种方式生成的文件是不能编辑的,所以只能采用上面提到的绘制内容的方式,使用jsPDF提供的绘制方法将内容按照需求绘制到文件里。需要注意的是,因为jsPDF不支持绘制中文内容,绘制中文文本内容会乱码,需要使用其GitHub提供的工具,将支持中文的字体转码成js文件,然后在需要的页面引入,详情可参考官网示例。
4、如何在小程序、App实现预览和保存pdf文件的功能?
我们在小程序使用jsPDF的save方法时,发现无法下载也无任何报错,查看源码发现其save方法实现逻辑实际上是浏览器常用的a标签下载方式,即
download方法
小程序不支持因此无法下载并保存,那么,我们是否可以通过获取获取其生成的内容自己处理呢?
答案是肯定的,查看其说明文件,我们发现有以下几个方法可以获取输出内容:
output方法
我们不能直接生成文件,因此可以选择的只有3个,即
根据后台接收的格式进行选择,我们就以导出blob为示例:
这样即可将生成pdf文件上传,然后通过后台返回文件的URL地址,即可实现预览和下载了。
创作不易,觉得有用的希望点赞关注和转发~~欢迎评论交流
前端必读书籍推荐
大家好,我是 Echa。
今天来推荐一些值得阅读的前端书籍!想要电子书的老铁们,加关注私信我,回复“前端书”即可。
CSS世界三部曲中的其中两部,都是关于 CSS 的进阶读物,作者结合自己多年的从业经验,讲解CSS基础知识,并充分考虑前端开发者的需求,以CSS新特性的历史背景为线索,去粗取精,注重细节,深入浅出地介绍了上百个CSS新特性。主要目标是帮助前端开发者突破CSS技能提升的瓶颈,非常适合具有一定CSS基础的前端开发者阅读。
本书展示了如何通过布局、过渡和动画、边框、背景、文本属性,以及许多其他工具和技术来改善用户体验、加快开发速度、避免潜在的错误。对 CSS 进行了系统的讲解,适合当工具书来阅读。
本书是一本注重实践的教程,作者为我们揭示了47个鲜为人知的CSS技巧,主要内容包括背景与边框、形状、视觉效果、字体排印、用户体验、结构与布局、过渡与动画等。适合有一定CSS基础的开发者阅读。
本书旨在帮你深度掌握CSS语言,并快速了解CSS的新进展和新特性。书中不仅有讲解透彻的概念介绍,而且还有详细的分步示例,能够帮助你提升CSS开发技能。
前端开发最值得阅读的书籍之一,也就是传说中的红宝书。书中详尽讨论了JavaScript的各个方面,从JavaScript的起源开始,逐步讲解到新出现的技术,其中重点介绍ECMAScript和DOM标准。适合所有阶段的前端开发者阅读。
前端开发最值得阅读的书籍之一,也就是传说中的犀牛书。本书介绍JavaScript语言和由浏览器与Node实现的JavaScript API。本书的目标是全面地讲解JavaScript语言,对JavaScript程序中可能用到的重要的客户端API和服务器端API提供深入的介绍。本书适合有一定编程经验、想学习JavaScript读者,也适合已经在使用JavaScript但希望更深入地理解进而真正掌握这门语言的程序员。
“你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发人迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途,轻松理解前端圈里出现的各种技术、框架和流行术语。本书既适合JavaScript语言初学者阅读,又适合经验丰富的前端开发人员深入学习。
本书根据ES2017标准,详尽介绍了所有新增的语法,对基本概念、设计目的和用法进行了清晰的讲解,给出了大量简单易懂的示例。其难度适中,适合那些已经对 JavaScript 有一定了解的读者。
本书对 ES6 的各种新特性进行了系统性的讲解,可以帮助我们加深对ES6的理解,并深入学期其原理。适合对 JavaScript 有一定了解的读者阅读。
本书介绍了如何掌握 JavaScript 核心的概念,诸如函数、闭包、对象、原型和 promise,同时还介绍了 JavaScript API, 包括 DOM、事件和计时器。对 JavaScript 底层进行深入讲解,适合初学者和进阶JavaScript 的开发者阅读。
本书揭示的技术和策略能帮助你在开发过程中消除性能瓶颈。你将会了解如何提升各方面的性能,包括代码的加载、运行、DOM 交互、页面生存周期等。本书介绍了页面代码加载的最佳方法和编程技巧,来帮助你编写更为高效和快速的代码。
本书由 Vue.js 官方团队成员霍春阳倾力打造,基于 Vue 3 深入解析 Vue.js 设计细节,从规范出发,以源码为基础,并结合大量直观的配图,循序渐进地讲解Vue.js中各个功能模块的实现,细致剖析框架设计原理。适合有一定 Vue 开发经验的的开发者阅读。
本书从几个维度去介绍 React。一是作为 View 库,它怎么实现组件化,以及它背后的实现原理。二是扩展到 Flux 应用架构及重要的衍生品 Redux,它们怎么与 React 结合做应用开发。三是对 React 与 server 的碰撞产生的一些思考。四是讲述它在可视化方面的优势与劣势。适合有一定经验的前端开发人员阅读。
从不同的视角介绍了 Node 内在的特点和结构。主要内容包含模块机制的揭示、异步I/O 实现原理的展现、异步编程的探讨、内存控制的介绍、二进制数据Buffer 的细节、Node 中的网络编程基础、Node 中的 Web 开发、进程间的消息传递、Node 测试以及通过Node 构建产品需要的注意事项。
本书系统讲解了使用Express开发动态Web应用的流程和步骤。不仅讲授了开发公共站点及REST API的基础知识,同时还讲解了构建单页、多页及混合Web应用的规划方式及实践。适合所有前端开发人员阅读。
本书讲解了Node.js的基础知识、开发调试方法、源码原理和应用场景,旨在向读者展示如何通过新的Node.js和npm编写出更具前端特色、更具工程化优势的代码。本书还讲解了Node.js中相当核心且复杂的异步流程控制,展望了未来异步流程的发展方向。对于了解 Node.js 在企业中如何应用很有帮助。
本书涵盖了TypeScript的大部分知识点,并对其进行了细致的讲解。本书还对TypeScript编译原理进行了深入的剖析,对高级编程技巧、编译原理进行了深入浅出的解读,适合入门TypeScript的开发者阅读。
本书针对JavaScript语言特性全面介绍了更适合前端程序员的了 16 个常用的设计模式,讲解了JavaScript面向对象和函数式编程方面的基础知识,介绍了面向对象的设计原则及其在设计模式中的体现,还分享了面向对象编程技巧和日常开发中的代码重构。本书将教会你如何把经典的设计模式应用到 JavaScript 中,编写出优美高效、结构化和可维护的代码。
书中清晰揭示了重构的过程,解释了重构的原理和佳实践方式,并给出了何时以及何地应该开始挖掘代码以求改善。书中给出了60多个可行的重构,每个重构都介绍了一种经过验证的代码变换手法的动机和技术。本书提出的重构准则将帮助开发人员一次一小步地修改代码,从而减少了开发过程中的风险。适合有一定前端开发经验的开发者阅读。
本书对 HTTP 协议进行了全面系统的介绍。作者由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、全新技术动向等方面。在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。
本书讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,适合初学者阅读。
本书详细解释了HTTP协议,探讨了HTTP有效工作所依赖的所有其他核心因特网技术。本书的本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中去,主要涵盖HTTP的技术运作方式、产生动机、性能和目标,以及一些相关技术问题。
本书是用JavaScript描述数据结构与算法的开山之作,通过丰富的示例,向读者透彻讲解了在JavaScript环境下,如何通过一系列存储机制(包括链表、栈、队列和图)高效地达到编程目的。学习数据结构与算法可以提高逻辑思维能力和解决问题的能力。
本书采用大量图片,通过详细的分步讲解,以直观、易懂的方式展现了7个数据结构和26个基础算法的基本原理。本书通过大量的步骤图帮助读者加深对数据结构原理和算法执行过程的理解,便于学习和记忆。将本书作为算法入门的第一步,是非常不错的选择。
本书以图配文,以计算机的三大原则为开端、相继介绍了计算机的结构、手工汇编、程序流程、算法、数据结构、面向对象编程、数据库、TCP/IP 网络、数据加密、XML、计算机系统开发以及SE 的相关知识。适合想要扩展计算机基础知识的开发者阅读。
整理了100多本Java后端电子书,送给小伙伴们
上周末的时候,Hydra整理了一张Java大厂面试必读的书单发了出来,有小伙伴在后台留言,希望能能扩充一下这个书单,添加一些其他后端技术书籍。这里我已经把整理到的100多本书籍分好类目,全部共享给大家,希望可以帮助大家更好的进步,可以先看一下目录:
全部100余本电子书获取方式:转发、点赞,关注头条号后私信 “356” 向小编索取。
这里先将一部分电子书的清单列出,供大家预览。
- 《Effective Java》
- 《码出高效:Java开发手册》
- 《Java 8实战》
- 《Java语言程序设计 基础篇》
- 《JAVA语言导学》
- 《Java性能调优指南》
- 《大话JAVA性能优化》
- 《Java核心技术》
- 《Java经典实例》
- 《疯狂Java讲义第4版》
- 《Java 8编程参考官方教程》
- 《Java虚拟机(第二版)》
- 《深入理解Java虚拟机JVM高级特性与最佳实践》
- 《实战Java虚拟机 JVM故障诊断与性能调优》
- 《揭秘Java虚拟机-JVM设计原理与实现》
- 《垃圾回收的算法与实现》
- 《JVM实用参数系列》
- 《Spring 实战》
- 《Spring从入门到精通》
- 《Spring5 高级编程》
- 《Spring Cloud微服务实战》
- 《深入理解Spring Cloud与微服务构建》
- 《JVM实用参数系列》
- 《Spring Framework》
- 《JavaEE开发的颠覆者 Spring Boot实战》
- 《Spring揭秘》
- 《Spring技术内幕:深入理解Spring架构与设计原理》
- 《Spring Cloud与Docker微服务架构实战》
- 《深入浅出Spring Boot2》
- 《Java高并发编程详解》
- 《JAVA多线程设计模式》
- 《Java并发编程从入门到精通》
- 《Concurrent Programming in Java》
- 《图解Java多线程设计模式》
- 《Java并发编程之美》
- 《JAVA多线程编程核心技术》
- 《Java并发编程的艺术》
- 《Java并发编程核心方法与框架》
- 《亿级流量网站架构核心技术》
- 《ElasticSearch技术解析与实战》
- 《ElasticSearch服务器开发》
- 《ElasticSearch大数据搜索引擎》
- 《深入理解ElasticSearch》
- 《高性能MySQL》
- 《ORACLE数据库SQL语句编写优化总结》
- 《redis设计与实现(第二版)》
- 《MongoDB权威指南中文版》
- 《MySQL数据库开发的三十六条规定》
- 《MySQL必知必会》
- 《Head First设计模式》
- 《大话设计模式》
- 《24种设计模式结束与6大设计原则》
- 《Java与模式》
- 《Hadoop实战》
- 《Hadoop权威指南》
- 《人人都是架构师 分布式系统架构落地与瓶颈突破》
- 《分布式Java应用基础与实战》
- 《大型分布式系统案例实战》
- 《大型分布式网站架构设计与实践》
- 《分布式服务架构:原理、设计与实践》
- 《SOA实践指南》
- 《图解数据结构》
- 《算法导论(第三版)》
- 《数据结构与算法经典问题解析-Java语言描述》
- 《算法的乐趣》
- 《规划算法》
- 《数据结构与抽象 Java语言描述》
- 《数据结构与算法》
- 《Java数据结构和算法(第二版)》
- 《Java常用算法手册》
- 《Spring源码分析》
- 《Spring源码深度解析》
- 《Dubbo源码解析》
- 《看透springMvc源代码分析与实践》
- 《一本小小的MyBatis源码分析书》
- 《iBATIS框架源码剖析》
- 《大型网站系统与JAVA中间件实践》
- 《ActiveMQ in Action》
- 《Netty权威指南》
- 《阿里开源分库表组件Mycat》
- 《第一本Docker书》
- 《Maven实战》
- 《Nginx》
- 《Web应用安全权威指南》
- 《Java Web开发实战1200例》
- 《图解HTTP》
- 《精通Tomcat》
- 《Java Web整合开发王者归来》
- 《JavaScript高级程序设计》
全部100余本电子书获取方式:转发、点赞,关注头条号后私信 “356” 向小编索取。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。