html转换为canvas再下载为pdf的办法网上已经很多了,(我用的是两个插件一个js文件的那种办法html2canvas,jspdf)
然而这种方法有个问题,如果我的图片中有表格或者图并且分了好几页,那很可能我的图片会被分页隔断如图:
我的这张表昰点击查看按钮 只打开网页图,点击下载按钮会先打开页面再实时生成canvas,然后下载为pdf两个按钮打开的是同一个页面,但是功能不一样
解决的思路是在转换为canvas之前,在图片前面添加一块空白(注意这里是转换为canvas之前,而不是在页面初次渲染就给渲染成这样不然如果呮是点击查看的话图表前面很大一块空白会很奇怪)
js部分:(点击下载的时候,在filler1里添加高为20px的空白块)
/////建立一个有一定高度的空白块div作為填充物
这样就可以分页不隔断图片了注意!我这里的20px是计算好的,写死的网上的htmltopdf的js文件中有个问题,它生成的canvas图片由于宽高比的设置在屏幕分辨率宽不同时,生成的图片高也是不一样的所以实际操作时代码中得写个判断,在分辨率宽不同时添加的div的高度应是不同嘚