开发背景

在实际开发过程中,有一些特殊需要:需要把相关网页转换成PDF格式,作为资料留存

下面讲一下我所遇到的相关需求:证书的发放,在前期的需求调研的时候甲方提出一个需求,电子证书需要实时生成并且通过邮件发送,于是我开始找相关的资料开始学习,于是找到了以下几个:

1.pdf.js

缺点:分页时会造成文字或表格截断等,所以自己要使用css去规范网页在一个页面中,所以只适合单网页生成pdf,这个看自己需求来顶

2.dompdf

要求:该库要求PHP> = 5.0,并且已启用mbstring和DOM扩展。 它还需要一些字体,这些字体通常在大多数计算机上都可用。

示例:

//引入资源文件

require_once "dompdf_config.inc.php";

//初始化对象

$dompdf = new DOMPDF();

$html = <<<'ENDHTML'

<html>

<body>

<h1>test</h1>

</body>

</html>

ENDHTML;

//载入HTML资源文件

$dompdf->load_html($html);

//重载

$dompdf->render();

//输出

$dompdf->stream("test.pdf");

总结:大型表或者长网页很容易导致内存不足。

3.html2ps

示例:

//引入资源文件

require_once "html2fpdf.php";

//初始化对象

$pdf=new HTML2FPDF();

//加载实例方法

$pdf->AddPage();

//获取生成页面

$fp = fopen("test.html","r");

//获取生成页面参数

$strContent = fread($fp, filesize("sample.html"));

//关闭

fclose($fp);

//加载实例方法

$pdf->WriteHTML($strContent);

//输出

$pdf->Output("test.pdf");

4.wkhtmltopdf

示例:

//需要生成pdf的页面(注意:在自己的项目中,该页面一定要是不需要有登录凭证的页面)

$http = “https://www.baidu.com”;

//指定生成pdf的存放地址(注意:最好是项目的绝对路径:也就是带域名的全路径)

$root_url = ””’;

//执行pdf生成

shell_exec("wkhtmltopdf {$http} {$root_url}");

总结:单页面或者长度在网页上一页的话适用于  pdf.js 或者  dompdf

           页面数据较多或者表格数据大适用于  html2ps   或者    wkhtmltopdf

            选择其实并没有一个固定的方法,适用自己并且灵活使用才是最好了

参考主方法:

public function wkhtmltopdf(){
    //设置最大时间set_time_limit(0);//参数$uid= 1;//固定参数(需要装换的页面的地址:一定是不需要登录的页面,比如百度)$http = "";//固定参数$realname = '';//pdf格式$name = $uid.'_info.pdf';//文件夹地址$path =  '';//创建文件夹if (!is_dir($path)){mkdir($path, 0777, true);chmod($path,0777);}$root_url = $path .'/'.$name; //引用三方插件生成pdf(注意,大页面可能有加载时间,转换可能不完全,需要设置睡眠时间)exec("wkhtmltopdf {$http} {$root_url}");$url = config_item('hos_base_url').'/upload/training/file/'.$uid.'/'.$name;$name = $realname.'-证件资料.pdf';$_name = iconv("UTF-8", "GB2312//IGNORE", $name);$_name  = urlencode($_name);//输出结果var_dump(compact('url','name','root_url','_name'));
}

HTML转换成PDF 指定网页转换PDF(实际上是截取网页) pdf.js , dompdf , html2ps , wkhtmltopdf相关推荐

  1. PDF转换成JPG图片怎么转换?这两招轻松搞定

    PDF转换成JPG图片怎么转换?PDF文件是我们常用的一类文件,在现在的办公环境中,PDF真的用途很广,不仅是日常发送文件,还有学习工作中都会用到,不过有时候我们也需要将PDF文件转换成其他的格式,比 ...

  2. WPS怎么在线转换成Word,WPS转换成Word的操作步骤

    WPS转换成Word怎么操作?WPS文件也会比较熟悉的办公软件,但是WPS和Word的操作方法也有不一样的地方,所以将WPS转换成Word就是为了更好的操作文档,接下来就一起看一下WPS转换成Word ...

  3. 怎么把html换成gif,怎么将mp4转换成gif 把mp4转换成高清gif的方法

    狸窝是帮助用户解决问题 提供教程解决方案 在这个过程中有使用我们自己开发的软件 也有网上找的工具 只要帮助用户解决问题就好!同意请继续往下了解 对于gif动态图片,相信大家并不少见,尤其是喜欢上扣扣. ...

  4. 【各种转换】数组转换成字符串,集合转换成字符串,字符串转集合

    由于在工作中经常用到各种类型的互相转换,这里总结一下: 1. 基本类型转字符串: 2. 将list集合转化成string数组:用toArray 3. String数组转集合 4. String数组转换 ...

  5. flv文件如何转换成mp4 将flv转换成mp4格式的方法是什么

    电脑flv如何转换成mp4 将flv转换成mp4格式的方法有哪些?FLV流媒体格式是一种新的视频格式,它形成的文件极小.加载速度极快,使得网络观看视频文件成为可能.很多网页上下载的视频都是flv格式的 ...

  6. js 转化为实体符_js字符串转换成数字与数字转换成字符串的实现方法

    本篇文章主要是对js字符串转换成数字与数字转换成字符串的实现方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 js字符串转换成数字 将字符串转换成数字,得用到parseInt函数. ...

  7. java大数转换成字符串,js字符串转换成数字与数字转换成字符串的实现方法

    摘要:这篇JavaScript栏目下的"js字符串转换成数字与数字转换成字符串的实现方法",介绍的技术点是"js字符串.字符串转换.实现方法.数字转换.字符串.转换&qu ...

  8. json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值...

    json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 原文:json字符串转换成json对象,json对象转换成字符串,值转换成字符串,字符串转成值 主要内容: 一 ...

  9. wps将word转换成html,wps如何转换成word(word转换成wps的方法)

    如何将wps转换成word.word转换成wps?首先需将电脑设置为显示后缀名,然后将后缀名进行修改,或通过另存为方式实现转换. 所需工具:word工具  wps工具 将电脑设置成显示后缀名将电脑设置 ...

  10. java将图片的url转换成File,File转换成二进制流byte

    package com.xqy;import java.io.*; import java.net.HttpURLConnection; import java.net.URL; //java将图片的 ...

最新文章

  1. 堪称为经典游戏设计帖整理20个点击回复超高的精品贴
  2. 你必须学会的Git入门基本操作
  3. VTK:IO之ReadImageData
  4. VTK:Filtering之ProgrammableFilter
  5. android studio 跨进程,Android IPC机制(三)在Android Studio中使用AIDL实现跨进程方法调用...
  6. python哪个专业开这个课程-深圳python课程
  7. php 多维数组 列,总结PHP实现提取多维数组指定一列的方法
  8. OPPO Reno3系列旗舰官宣:骁龙765G+正反双曲面设计
  9. LeetCode 792. 匹配子序列的单词数(Number of Matching Subsequences)
  10. Linux 下编译安装OpenCV【转】
  11. ubuntu以安装包方式安装jdk13
  12. TimeUnit类中的sleep() 和Thread.sleep()
  13. sleep与信号唤醒的问题 内核对信号的处理方式 udelay
  14. 光明顶短信支付:格式详解
  15. 二进制的转换(二进制、八进制、十进制、十六进制)
  16. MATLAB中Spline插值使用记录
  17. 怎么用计算机测试手速,魔兽争霸apm测试器-请问怎样测试自己的手速?(APM)需要专门 – 手机爱问...
  18. ASIC和FPGA设计流程
  19. POJ 1419-Graph Coloring
  20. 什么是Civil3D

热门文章

  1. 数据结构与算法-三对角矩阵的压缩公式推导
  2. 如何下载因特尔显卡的最新驱动
  3. arduino ssd1306屏幕打印信息(已测可用)
  4. 爬虫-截获http错误码(Python)
  5. c语言 内存映射文件,内存映射文件
  6. oracle 数据库 alter table 修改字段
  7. Hadoop中的MapReduce框架原理、数据清洗(ETL)、MapReduce开发总结、常见错误及解决方案
  8. ASP连接Excel的方法
  9. ADI Blackfin DSP处理器-BF533的开发详解21:RTC实时时钟的原理及应用(含源码)
  10. IP地址扫描程序/扫描工具