上节讲到配置wkhtmltopdf,这节讲下如何批量操作

首先讲下wkhtmltopdf如何使用

直接命令行输入:

wkhtmltopdf http://www.baidu.com/  baidu.pdf

php使用

<?php

shell_exec('wkhtmltopdf http://www.baidu.com/  baidu.pdf')  //注:中间两个空格隔开

?>

当前路径下会生成一个PDF文件:

批量操作:

<?php
header("Content-type:text/html;charset=utf-8");
$host='127.0.0.1';
$user='root';
$password='***';
$dbName= "***"; $db=new MySQLi($host,$user,$password,$dbName);
mysqli_set_charset($db,'utf8');
if ($db->connect_error){ die("连接失败:".$db->connect_error); } $sql = '***';
$result = $db->query($sql);//返回结果集对象
$n = $result->fetch_all();
echo '<pre>';
$s = 0;
foreach ($n as $v){
$s ++;
    //判断是否生成
$file = "test_pdf/".$v[0].".pdf";
if(file_exists($file)){
continue;
}
    $path="test_html/".$v[0].".html"; //命名方式可以id命名,唯一即可
$tem = 'cq/template.html'; //模板HTML文件
$fp=fopen($tem,"r");
//读取模板中内容
$str=fread($fp,filesize($tem));
//替换内容
$str=str_replace("{indentity_code}",$v[0],$str);
$str=str_replace("{name}",$v[1],$str);
***
fclose($fp);
//写入方式打开路径 $handle=fopen($path,"w");
//把刚才替换的内容写进生成的HTML文件
fwrite($handle,$str);
fclose($handle);
//存PDF
shell_exec("wkhtmltopdf localhost/test_html/".$v[0].".html "."test_pdf/".$v[0].".pdf");
echo $v[0].'<br/>';
//检测生成PDF
// if($s == 2 ){
// break;
// }
}
通过循环方式执行:

<!DOCTYPE HTML>
<meta http-equiv="content-type" content="text/html;charset=utf-8">  <!-- 注:这句加上防止HTML乱码,导致导出PDF乱码 -->
<html>
<body>
<link rel="stylesheet" type="text/css" href="../ks.css">
<div class="box">
<span style="width: 30%">姓名:{name}</span>

</div>
</body>
</html>

注: css文件要和生成html文件引入方式一样,这样确保生成后的html文件能在本地访问

以上方式基本上能实现批量数据导出PDF,如有不懂,或者过程中遇到别的问题,乱码等问题加群讨论

php 查询mysql数据批量转为PDF文件二(批量使用wkhtmltopdf html导出PDF)的更多相关文章

  1. python查询mysql数据(3)

    python查询mysql数据(3) """数据查询""" import pymysql import datetime from pymy ...

  2. 【转】Python编程: 多个PDF文件合并以及网页上自动下载PDF文件

    1. 多个PDF文件合并1.1 需求描述有时候,我们下载了多个PDF文件, 但希望能把它们合并成一个PDF文件.例如:你下载的数个PDF文件资料或者电子发票,你可以使用python程序合并成一个PDF ...

  3. java操作office和pdf文件java读取word,excel和pdf文档内容

    在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...

  4. Salesforce随笔: 将Visualforce Page渲染为PDF文件(Render a Visualforce Page as a PDF File)

    参照 : Visualforce Developer Guide 第60页 <Render a Visualforce Page as a PDF File> 你可以用PDF渲染服务生成一 ...

  5. php 查询mysql数据批量转为PDF文件一(mac使用配置wkhtmltopdf html导出PDF)

    数据转标准PDF查文档,查资料先转HTML标准格式再html转PDF 转PDF wkhtmltopdf工具是最佳选择 首先下载wkhtmltopdf https://wkhtmltopdf.org/d ...

  6. 笔记:PHP查询mysql数据后中文字符乱码

    新建表Clubs CREATE TABLE `Clubs` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) CHARACTER SET utf8 NOT NULL ...

  7. 【Java】数据库查询的数据直接以指定文件类型下载到本地(弹出下载框)

    欲实现的功能目标:当点击下图的导出数据文件时弹出文件下载框,默认csv格式,用户自定义下载的本地路径 遇到的问题: 1.项目之前做过一次下载,但是是使用了本地文件模板.用输入流读取文件模板,插入数据, ...

  8. Spring-Batch处理MySQL数据后存到CSV文件

    1 介绍 用Spring Batch实现了个简单的需求,从MySQL中读取用户表数据,根据生日计算年龄,将结果输出到csv文件. 1.1 准备表及数据 user test; DROP TABLE IF ...

  9. 查询MYSQl数据表中的最后一条记录

    mysql: select * from table order by id DESC limit 1 oracle: select * from emp where id in (select ma ...

随机推荐

  1. 用phantomjs进行web界面自动化测试的几个注意点

    貌似我以前说过不少界面自动化测试的坏话,哈哈.最近接触了phantomjs,发现用它进行web界面测试也挺有意思的,下面举几个我使用过程中发现的注意点. 1.需要指定phantomjs位置,否则使用时 ...

  2. PHP操作RabbitMQ的类 exchange、queue、route kye、bind

    RabbitMQ是常见的消息中间件.也许是还是不够了解的缘故,感觉功能还好吧. 讲到队列,大家脑子里第一印象是下边这样的. P生产者推送消息-->队列-->C消费者取出消息 结构很简单,但 ...

  3. 软件测试3gkd

        一.单元测试的任务 单元测试主要是对软件的基本组成单元进行测试,且所测试单元与程序的其他部分在测试中相隔离. 在单元测试中,我们需要对与程序构建中的单位测试以保证其可靠运行与代码规范. 单元测 ...

  4. npm install

    npm install moduleName 命令 1. 安装模块到项目node_modules目录下.2. 不会将模块依赖写入devDependencies或dependencies 节点.3. 运 ...

  5. Python3 tkinter基础 Radiobutton 创建三个单选钮

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  6. windows10下配置环境变量

    环境变量 -> 系统变量中: 新建变量JAVA_HOME,值:jdk的安装路径 新建变量CLASSPATH,值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\ ...

  7. PostgreSQL 与 PostGIS

    PostgreSQL 是一种对象-关系型数据库管理系统(ORDBMS),也是目前功能最强大.特性最丰富和最复杂的自由软件数据库系统.它起源于伯克利(BSD)的数据库研究计划,目前是最重要的开源数据库产 ...

  8. python多环境下虚拟环境的搭建和使用

    由于开发环境要求,或者实际需要.经常会出现python2.7和python3.x共存下的开发环境问题.虚拟环境的搭建可以很好的隔离Projects的开发环境. 1.首先解决python2.7和pyth ...

  9. Error: EACCES: permission denied, mkdir '......node-sass/build'错误解决方案

    安装node-sass时出现一下错误: gyp ERR! configure error gyp ERR! stack Error: EACCES: permission denied, mkdir ...

  10. kafka知识点

    一.为什么需要消息系统 1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束. 2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险. ...