最好⽤Html转pdf的⼯具——wkhtmltopdf
实习时公司需要把⼀些html页⾯中的部分内容⽣成pdf⽂件,然后我就⼀些⽤php把html页⾯围成pdf⽂件的类。⽅法是可谓是了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求(主要是不能解决中⽂乱码的问题以及样式排版的问题)。
pdflib,FPDF 这两个⽅法是需要编写程序去⽣成pdf的,就也是讲不⽀持直接把html页⾯转换成pdf;html2pdf这个虽然可以把html页⾯转换成pdf⽂ 件,但是它只能转换⼀般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不⾏的。
纠结了半天,什么百度,⾕歌搜索都⽤了,搜索了半天,功夫不负有⼼⼈,终于到⼀个⾮常好⽤的⽅法了,下⾯就隆重介绍。
它就 是:wkhtmltopdf,wkhtmltopdf可以直接把任何⼀个可以在浏览器中浏览的⽹页直接转换成⼀个pdf,⾸先说明⼀下它不是⼀个php 类,⽽是⼀个把html页⾯转换成pdf的⼀个软件(需要安装在服务器上),但是它并不是⼀个简单的桌⾯软件,⽽且它直接cmd批处理的,使⽤php中的 shell_exec()函数就可以调⽤它。下⾯就介绍如何⽤php+js+html来让它⽣成pdf⽂件的⽅法(不过有个缺陷就是他需要在服务器端⽣成⼀个缓存⽂件,如果你使⽤thinkphp框架的话就可以将其缓存⽂件放在runtime ⽂件夹中暂存就⾏)。
打开我的电脑右键属性
点击⾼级系统设置
到⾼级⾥⾯点击环境变量
vbs脚本停止到系统变量中的path,点击编辑,将刚刚的安装位置复制到最后,记得前⾯加⼀个分号哦!
3、点击回车后,会看到⼀个进度条,然后就提⽰转换成功!
4、之后在相应位置(即刚刚设置的D盘)中会发现多了⼀个Pdf⽂件,就说明成功了
三,php⾥调⽤
php⾥调⽤是很简单的,⽤shell_exec这个函数就可以了,如果shell_exec函数不能⽤看看php.ini⾥是否补禁⽤了(到php.ini中的
shell_exec函数,取消注释就可以了,⼀般都是可以直接⽤的)。简单举例:
<?php shell_exec("wkhtmltopdf www.shwzzz/ 1.pdf") ?>
你会发现在你php⽂件的同级⽬录中会⽣成⼀个1.pdf的⽂件
下⾯代码举例介绍如何在⽹站开发中使⽤它:主要功能是截取⽹页的部分传递到php中处理成pdf⽂档
html页⾯代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head>
<script src="js/jquery-2.1.4.min.js"></script>
<link rel="stylesheet"href="css/common.css">
<link rel="stylesheet"href="css/myCenter.css">
<meta http-equiv="Content-Type"content="text/html; charset=utf-8" />
<title>霍兰德职业测试</title>
</head>
<body>
<!--startprint-->
<div class="right5">
<div class="right_top">
<h3>霍兰德测试报告</h3>
</div>
<div class="print">
<input type="button"value="下载报告"id="down"class="print_btn">
</div>
<div class="Hollander">
<h6>MBTI测试结果:ESTJ</h6>
<div id="chart"></div>
<p>约翰·霍兰德(John Holland)是美国约翰·霍普⾦斯⼤学⼼理学教授,美国著名的职业指导专家。霍兰德以职业兴趣理论为基础,先后编制了职业
</div>
<table class="tbl1">
<tbody>
<tr node-type="toolBar">
<td class="tbl11">领导模式:</td>
<td class="tbl12">
<p>①直接领导,快速管理②运⽤过去经验解决问题③直接、明确地识别问题的核⼼④决策和执⾏决策⾮常迅速⑤传统型领导,尊重组织内部的等</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11">领导模式:</td>
<td class="tbl12">
<p>①直接领导,快速管理②运⽤过去经验解决问题③直接、明确地识别问题的核⼼④决策和执⾏决策⾮常迅速⑤传统型领导,尊重组织内部的等</td>
jquery下载的文件怎么使用
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11">领导模式:</td>
<td class="tbl12">
<p>①直接领导,快速管理②运⽤过去经验解决问题③直接、明确地识别问题的核⼼④决策和执⾏决策⾮常迅速⑤传统型领导,尊重组织内部的等</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11">领导模式:</td>
<td class="tbl12">
<p>①直接领导,快速管理②运⽤过去经验解决问题③直接、明确地识别问题的核⼼④决策和执⾏决策⾮常迅速⑤传统型领导,尊重组织内部的等</td>
</td>
</tr>
<tr node-type="toolBar">
<td class="tbl11">适合报考专业:</td>
<td class="tbl12">
<a><span>专业定位卡介绍>></span></a>
</td>
</td>
正则匹配横线</tr>旅游网站设计方案
</tbody>
</table>
</div>
<!--endprint-->
<form action="pdf.php"method="post"name="hld_res"id="hideform">
<input type="hidden"id="hide_content"name="html"/>数据库系统开发文献
</form>
</body>
在线转换繁体字转换器
<script>
$(function() {
//获取需要传递的Html代码通过<!--startprint--><!--endprint-->截取
bdhtml=window.document.body.innerHTML;
sprnstr="<!--startprint-->";
eprnstr="<!--endprint-->";
prnhtml=bdhtml.substr(bdhtml.indexOf(sprnstr)+17);
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));
//将获取的html代码添加到隐藏域中传给php⽂件处理
$("#hide_content").val(""+prnhtml+"");
} );
$("#down").click(function(){
$("#hideform").submit();
});
</script>
</html>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。