生成pdf phantomjs (3)

index.html

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <body> <div></div> 这是个demo,随便写的, 如果要加载图片路径,可以使用相对路径,也可使用绝对路径 </body> </html>

jquery-3.2.1.min.js 该文件自己百度下载下即可,就不贴了

echarts-all.js 该文件自己去百度下载下,这里就不贴了

使用方式

参考最上边贴的总结,命令行也在,自己动手试一试即可

PDF 格式设置

我们需要的设置,基本上就是页面格式、缩放、加载图片等,但有些例外,下面一一讲解。

page.paperSize = { format: 'A4', orientation: 'portrait', margin: '0.8cm' };
注释掉了官方例子的设置代码,因为传入的参数只有3个,到 .pdf 为止,如果写成通用模式,当然可以作为外部参数传入。

format :A4 纸,可以设置 "5in7.5in", "10cm20cm", "Letter" 等

orientation :纸方向是竖着的,或者 landscape

margin :与纸四边间距,可自定义,也可详细设置 margin : { left: '0.8cm', top : '0.8cm', right : '0.8cm', bottom : '0.8cm' }

page.zoomFactor = 1;
page.settings.loadImages = true;
zoomFactor :页面缩放比例

loadImages :页面加载图片

page.settings.userAgent = 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.117 Safari/537.36';
这个设置比较不常见,一般的示例中都没有提及,因为发现用 chrome 和 IE 打开生成的 pdf 时格式有点不一样(表现在分页方面),由于偏向 Chrome 浏览格式,故设置此值,解决这个不一致问题。

page.open 里面的 setTimeout 方法作用:等待页面执行完 js ,再生成 pdf。当然对于 js 要执行多久(要等多久),这个就不知道怎么预算了。其实我有试过 ajax 方式加载内容,但因此问题而作罢了。

PDF 分页

分页来说,更好控制,不需要代码(js)设置,页面使用样式即可:

style = “page-break-after: always;”
控制每页内容的大小,使用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpyspy.html