加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

wkhtmltopdf 最好用Html转pdf的工具

发布时间:2020-03-13 03:20:42 所属栏目:安全 来源:站长网
导读:这篇文章主要介绍了wkhtmltopdf 最好用Html转pdf的工具,需要的朋友可以参考下

<?php //转成pdf $html=$_POST['html']; //Turn on output buffering ob_start(); $html=' <link href="http://www.jb51.net/article/css/common.css" > <link href="http://www.jb51.net/article/css/myCenter.css" > <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />'.$html; //这儿可以引入生成的Html的样式表 路径可以是绝对路径也可以是相对路径,也可以把样式表文件复制到临时html文件的目录下 即这儿的demo文件目录下(默认) 也可以直接把样式写在html页面中直接传递过来 //$html = ob_get_contents(); //$html=$html1.$html; $filename = "hld"; //save the html page in tmp folder 保存的html临时文件位置 可以是相对路径也是可以是绝对路径 下面用相对路径 file_put_contents("{$filename}.html", $html); //Clean the output buffer and turn off output buffering ob_end_clean(); //convert HTML to PDF shell_exec("wkhtmltopdf -q {$filename}.html {$filename}.pdf"); if(file_exists("{$filename}.pdf")){ header("Content-type:application/pdf"); header("Content-Disposition:attachment;filename={$filename}.pdf"); echo file_get_contents("{$filename}.pdf"); //echo "{$filename}.pdf"; }else{ exit; } ?>

点击页面中的下载按钮,

这里写图片描述

是不是弹出一个下载提示,打开下载的pdf,是不是和网页上的样式一模一样呢,

这里写图片描述

 

这里写图片描述

再打开Php文件中的文件保存位置,看看是不是多了两个临时文件呢?

这两个临时文件在哪儿,你的css就得在哪儿,或者你直接使用相对路径,引用其他文件中的css样式也可以的,最简单的就是把css样式直接写在要转成pdf的html页面中。

这里写图片描述

如果存在样式没有,那就是你的样式路径没有写对,在检查一下就可以了!

四,解决分页问题

wkhtmltopdf 很好用,但也有些不尽人意。就是当一个html页面很长我需要在指定的地方分页那怎么办呢? wkhtmltopdf 开发者在开发的时候并不是没有考虑到这一点,wkhtmltopdf 有个很好的方法,就是在那个div的样式后添加一个:page-break-inside:avoid;就ok了。

例如

div{ width:800px; min-height:1362px;margin:auto;page-break-inside:avoid;}

以上就是个人总结的转pdf的方法,很多地方还可以扩展,小伙伴们开动脑筋动起来吧,不过目前一直没有解决就是没法用中文名称命名文件,如果有能解决的伙伴,麻烦在下面留言告知,谢谢么么哒了!

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读