`
JerryWang_SAP
  • 浏览: 1044146 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

使用JavaScript将当前页面保存成PDF,支持图片和文字的保存

阅读更多

前端开发的朋友们可能会遇到这个需求:将您负责开发的网页的全部内容,包括文字和图片,一起保存成一个PDF文件。如果采用屏幕截图的话,默认Windows操作系统的截图按钮无法完整截取超过一屏幕的屏幕内容。

我在网上找了一段时间,搜集到了一些解决方案,在这里分享给广大程序员。

这个解决方案包含了两个步骤,将前端页面转化为PDF:

1. 遍历当前网页的DOM结构,收集所有DOM树上每个节点的元素信息及相应样式,渲染出canvas图像。这个遍历和渲染操作封装在脚本文件html2canvas.js里。

2. 利用一个开源的JavaScript库,jsPDF,在浏览器端用JavaScript生成PDF文件。PDF的生成逻辑封装在脚本文件jsPdf.debug.js里。

看看如何在您的前端网页里使用这两个JavaScript文件。

<script type="text/javascript" src="html2pdf/html2canvas.js"></script>

<script type="text/javascript" src="html2pdf/jsPdf.debug.js"></script>

下面是网页内容:

<html>

<p>在这里放一段很长很长的文件,能观察到最后生成的PDF会自动分页。。。。</p>

在您的前端页面里画一个按钮,用于触发将当前网页保存成PDF文件的事件。

<button id="renderPdf">保存整个网页成PDF</button>

HTML转PDF的代码如下:

 

如果想下载可以复制粘贴的代码文本,可以到这个链接下载。https://github.com/linwalker/render-html-to-pdf

下面可以看看这个解决方案的效果。

点这个按钮:

 

这是用JavaScript生成的PDF文件在本地打开的效果:

 

可以看到PDF中的翻页没有任何问题。

 

大家如果想自己体验一下通过JavaScript进行HTML转PDF的效果,可以试试我的demo:http://i042416.github.io/FioriODataTestTool2014/WebContent/092_html2pdf.html

这个解决方案最初是一位叫linwalker的程序员设计的,下面是他的github链接:

https://github.com/linwalker/render-html-to-pdf

 

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

 

 
 
0
0
分享到:
评论

相关推荐

    程序天下:JavaScript实例自学手册

    1.25 使用JavaScript传递页面参数 1.26 页面被冻结 第 2章 按钮特效 2.1 页面刷新按钮 2.2 按回车调用登录按钮 2.3 动态创建按钮 2.3 平面按钮 2.4 按钮的嵌入效果 2.5 按钮改变状态栏信息 2.6 定义按钮的热键 2.7 ...

    canvas 移动端画板批注pdf预览

    当需要加载时,可以将Base64编码转换回图片并覆盖原有PDF页面。 以上就是关于“canvas移动端画板批注pdf预览”的核心知识点。实现这样的功能需要对Canvas、PDF.js以及移动端事件处理有深入理解,同时要注意性能优化...

    image-to-pdf-app:JavaScript应用程序将图像转换为PDF文件

    本项目名为“image-to-pdf-app”,是一个基于JavaScript的Web应用程序,它允许用户将他们选择的图像转换成高质量的PDF文档。 在JavaScript中,实现图像到PDF转换主要涉及以下技术: 1. **HTML5 Canvas** - 一个...

    js实现网页特定部分截屏或打印.zip

    这个函数会触发浏览器的打印对话框,用户可以选择打印当前页面或保存为PDF。为了打印特定区域,我们需要创建一个新的`iframe`,将要打印的内容注入到`iframe`中,然后调用`window.print()`。 4. **事件监听**:为了...

    前端面试题汇总.pdf

    14. **图片优化**:延迟加载、压缩图片、使用WebP格式、雪碧图(Sprite)和懒加载技术等都是优化图片加载的方法。 15. **HTML语义化**:语义化HTML有助于屏幕阅读器理解页面结构,提高可访问性,同时利于SEO。 16....

    从入门到精通HTML5——PDF——网盘链接

     15.2.3 使用readAsDataURL方法预览图片 286  15.2.4 使用readAsText方法读取文本文件 287  15.2.5 FileReader接口中的事件 288  15.3 拖放API 290  15.3.1 实现拖放的步骤 290  15.3.2 通过拖放显示欢迎...

    Dreamweaver网页制作教案.pdf

    本教程将详细介绍Dreamweaver的基础知识,包括它的功能、窗口结构、网页工作区的视图方式、安装与卸载方法,以及如何使用Dreamweaver创建和编辑网页。 1. Dreamweaver的功能 Dreamweaver不仅能像文字处理软件一样...

    js操作word、excel.pdf

    7. **替代方案**:对于非IE浏览器,可以使用像`pandoc`这样的工具将HTML转换成Word文档,或者利用Office Online的API,如Microsoft Graph,通过JavaScript调用来创建、编辑和保存Word和Excel文件。 8. **安全性与...

    巧用DW制作拼图游戏借鉴.pdf

    6. 清理和完善页面,删除辅助性的数字标记,添加文字说明,使游戏更具可操作性和趣味性。最后,保存网页文档,完成拼图游戏的制作。 通过这个教程,你不仅学会了如何使用Dreamweaver创建网页,还掌握了如何利用层和...

    计算机基础习题及参考答案.pdf

    1. 保存网页时,如果用户仅点击保存,通常情况下,他将保存的是当前打开页本身,不包括用户指向的链接页或链接的快捷方式,更不会保存链接页的副本。选项A是正确的。 2. 窗口底部的横栏通常被称为地址栏,用于显示...

    5月最新大厂前端高频核心面试题.pdf

    而将JavaScript的标签放置在之前是避免阻塞HTML内容的解析和渲染,然而,对于需要立即使用的JavaScript,通常会放在中,并加上defer或async属性。 defer属性表示延迟执行脚本直到文档解析完成,而async属性表示异步...

    FrontPage 2000网页制作(9)——跨出网页制作的第八步之锦上添花(二).pdf

    在网页设计中,使用动态效果可以极大地提升用户体验和页面的吸引力。FrontPage 2000作为一款曾经流行的网页编辑工具,提供了通过JavaScript实现这些特效的功能。JavaScript是一种基于对象和事件驱动的脚本语言,它...

    计算机网页制作多项选择题.pdf

    1. 图像的宽度(width)和高度(height),可以用来调整图片尺寸。 2. 图像的边框(border),用于设定图像周围的边框宽度。 3. 虽然在题目中未提及,但还存在其他属性,如src(源地址)指定图像文件路径,alt(替代...

    第一章 计算机基础.pdf

    用户可以在地址栏输入网址并按回车键浏览,也可以使用工具栏上的"后退/前进"按钮浏览历史记录,"停止"按钮用于中断页面加载,"刷新"按钮更新当前页面,"主页"按钮返回预设主页,"邮件"按钮则链接到邮件客户端。...

    JS代码大全,最全的网页代码效果[归纳].pdf

    以上只是《JS代码大全,最全的网页代码效果[归纳].pdf》中的一部分内容,实际文档中可能还包含了更多关于JavaScript的实用技巧和示例,可以帮助开发者快速实现各种网页交互效果。对于JavaScript初学者或者希望提升...

    零基础的前端学习笔记.pdf

    图片标签是学习笔记中相当重要的一部分,其中包含src属性、alt属性、title属性和图片大小的设置。src属性用于指定图像文件的路径,是必须存在的属性。alt属性用于描述图片内容,当图片无法显示时会展示该属性中的...

    母亲节HTML源码.pdf

    如果图片不存在或路径错误,图片将无法正常显示。 2. **自定义样式**:根据实际需求,可以进一步修改CSS样式来定制页面的外观。 3. **兼容性问题**:虽然HTML5已经广泛支持,但在某些老旧浏览器中可能会遇到兼容性...

Global site tag (gtag.js) - Google Analytics