Thinkphp框架引用tcpdf插件,插件下载地址:待续。。。

代码编写前先引入tcpdf整个文件夹到项目目录的ThinkPHP文件夹下 如:/ThinkPHP/Library/Vendor/tcpdf

其他的不多说直接上代码

 导出考试结果明细
public function export()
{
    // 导出考试结果明细(PDF)
$id = I('id');
$detailed = D('member_test_result');
$parameter = $detailed->detailedResults($id);
$name = $parameter['member_name'];
$result = json_decode($parameter['test_result_str']);
foreach ($result as $k => $v) {
$test = M('test_cont');
$array['question_title'] = $test->where('id=' . $k)->getField('qustion_title');
//正确选项
$array['state'] = $test->where('id=' . $k)->getField('state');
//正确答案
$wheres['test_id'] = $k;
$wheres['state'] = $array['state'];
$array['stateresult'] = M('test_answer')->where($wheres)->getField('answer_name');
//选项
$array['cont'] = $v;
//选项内容
$where['test_id'] = $k;
$where['state'] = $array['cont'];
$array['result'] = M('test_answer')->where($where)->getField('answer_name');
$data[] = $array;
}
$content = '<!doctype html>';
$content .= '<html lang="en">';
$content .= '<head>';
$content .= '<meta charset="UTF-8" />';
$content .= '<title>考试结果</title>';
$content .= '</head>';
$content .= '<body>';
$content .= '<div class="content">';
$content .= '<p align="center" style="color: #0a6ebd;font-size: 24px"><b>考试结果</b></p>';
$content .= ' <div style="color:#6a6a6a;letter-spacing:4px">';
$content .= '<p><span>姓名:';
$content .= $name;
$content .= '</span>';
$content .= '<span style="color:#fff;">1231';
$content .= '</span>';
$content .= '<span style="" >考试用时:';
$content .= gmdate("i:s", $parameter['time_cost']);
$content .= '</span>';
$content .= '<span style="color:#fff;">1231';
$content .= '</span>';
$content .= '<span style="">考试分数:';
$content .= $parameter['score'];
$content .= '</span>';
$content .= '<hr/>';
foreach ($data as $k => $v) {
$content .= '<p style=font-size: 20px><b>';
$content .= $k + 1;
$content .= '、</b>';
$content .= $v['question_title'];
$content .= '</p>';
$content .= '<p style=" font-size: 14px">您的选项为:<span style="color:#0a6ebd;">';
$content .= $v['cont'];
$content .= '</span></p>';
$content .= '<p style=" font-size: 14px">您的答案为:<span style="color:#0a6ebd;">';
$content .= $v['result'];
$content .= '</span></p>';
$content .= '<p style=" font-size: 14px">正确选项为:<span style="color:red;">';
$content .= $v['state'];
$content .= '</span></p>';
$content .= '<p style=" font-size: 14px">正确答案为:<span style="color:red;">';
$content .= $v['stateresult'];
$content .= '</span></p>';
};
$content .= '</div>';
$content .= '</body>';
$content .= '</html>';
pdf($content); } pdf方法
function pdf($html){
  
vendor('Tcpdf.tcpdf');
$pdf = new \Tcpdf('P', 'mm', 'A4', true, 'UTF-8', false);
// 设置打印模式,设置文档信息
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('Examination result(考试结果)');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, PHP, example, test, guide');
// 是否显示页眉和是否显示页脚
$pdf->setPrintHeader(false);
$pdf->setPrintFooter(true);
// 设置页眉和页脚信息内容
$pdf->SetHeaderData('logo.jpg', 40, 'Helloweba.com', '小白测试', array(0,64,255), array(0,64,128));
$pdf->setFooterData(array(0,64,0), array(0,64,128));
// 设置页眉和页脚字体
$pdf->setHeaderFont(Array('dejavusans', '', '12'));
$pdf->setFooterFont(Array('dejavusans', '', '10'));
// 设置间距
$pdf->SetHeaderMargin('5');
$pdf->SetFooterMargin('10');
// 设置左、上、右的间距
$pdf->SetMargins('10', '10', '10');
// 设置是否自动分页 距离底部多少距离时分页
$pdf->SetAutoPageBreak(TRUE, '15');
// 设置默认等宽字体
$pdf->SetDefaultMonospacedFont('courier');
// 设置行高
$pdf->setCellHeightRatio(1);
// 设置图像比例因子
$pdf->setImageScale(1.25);
//设置默认字体子集模式
$pdf->setFontSubsetting(true);
// 设置字体
$pdf->SetFont('stsongstdlight', '', 14, '', true);
$pdf->AddPage();
$pdf->writeHTMLCell(0, 0, '', '', $html, 0, 1, 0, true, '', true);
  //PDF输出 I:在浏览器中打开,D:下载,F:在服务器生成pdf ,S:只返回pdf的字符串
  $pdf->Output(rand_string('9').'.pdf', 'I');
}

thinkphp-PHP实现pdf导出功能的更多相关文章

  1. ubuntu 16.04.3配置MinDoc的PDF导出功能

    1. 安装 wkhtmltopdf,然后reboot sudo apt-get install wkhtmltopdf 2. 进入cd /usr/bin 测试一下,看目录下有没有pdf生成 wkhtm ...

  2. thinkPHP中phpexcel的导出功能

    public function wExcel() { vendor("PHPExcel.PHPExcel"); // Create new PHPExcel object $obj ...

  3. ThinkPHP 整合 PHPExcel ,数据导出功能实现,解决Invalid cell coordinate

    PHPExcel想必大家都不陌生,是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格 本次只做数据导出功能的 ...

  4. asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台

    分享: 腾讯微博  新浪微博   搜狐微博   网易微博  腾讯朋友  百度贴吧  豆瓣   QQ好友  人人网 作者:王春天  原文地址:http://www.cnblogs.com/spring_ ...

  5. React项目实现导出PDF的功能

    在做web项目中,有时候会遇到pdf导出的需求,现根据之前在公司的React项目中遇到的导出PDF需求,整理一个demo出来. 导出PDF需要用到两个依赖包:html2canvas.jspdf 1.安 ...

  6. 解决highCharts导出功能汉化问题

    本文以highCharts中文网上的例子为原型,处理解决highCharts导出功能为英文的问题. 我们使用highCharts当然希望所有提示或文本都是中文的了,但是highCharts的默认语言是 ...

  7. vue实现pdf导出,解决生成canvas模糊等问题

    最近公司项目需要,利用vue实现pdf导出,从而保存到本地打印出来,说起来好像也很容易,具体要怎么实现呢? 1 .我们要添加两个模块 第一个.将页面html转换成图片 npm install --sa ...

  8. 【HOW】如何限制Reporting Services报表导出功能中格式选项

    Reporting Services报表导出功能中缺省会提供多种导出格式选项,但很多情况下不需要全部的格式选项,因此需要对这些选项进行限制.下面我们以SQL Server 2008 R2为例来说明对这 ...

  9. Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc

    Atitit.excel导出 功能解决方案 php java C#.net版总集合.docx 1.1. Excel的保存格式office2003 office2007/2010格式1 1.2. 类库选 ...

随机推荐

  1. 01_JMS概述

    [以前的通信技术的局限性] 在大规模和复杂的分布式系统中,传统的RMI.DCOM等中间件通信技术逐渐有了局限性,如下: 1.同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果才能继续执行. ...

  2. java原生文件打包

    一.背景 前端时间,自己做的项目需要打包功能,不想再引外部的jar包 便用java.util.zip做了下该功能 二.适用场景 生成多个word.excel.xml等文件,并要求打包下载的情形 例:项 ...

  3. 如何将bug杀死在摇篮里?

    阿里妹导读:在欧洲中世纪的传说中,有一种叫“人狼”的妖怪,就是人面狼身.它们会讲人话,专在月圆之夜去袭击人类.而且传说中对“人狼”用一般的枪弹是不起作用的,普通子弹都伤不到也打不死它,只有一种用银子作 ...

  4. Picklist的配置

    Picklist包括静态的Picklist和动态的Picklist.静态Picklist的配置 1.首先在All Projects中,选中Picklist,复制一个Pistlist进行修改.Name( ...

  5. 牛客网数据库SQL实战1-查找最晚入职员工的所有信息

    题目描述 查找最晚入职员工的所有信息CREATE TABLE `employees` (`emp_no` int(11) NOT NULL,`birth_date` date NOT NULL,`fi ...

  6. 用批处理在windows中导出/导入无线网络信息,复制保存为bat即可

    @echo offtitle 在windows中导出/导入无线网络信息 :Beginecho ========================echo 请选择操作:echo 1 查看可用的无线网络ec ...

  7. 【LOJ6062】「2017 山东一轮集训 Day2」Pair(线段树套路题)

    点此看题面 大致题意: 给出一个长度为\(n\)的数列\(a\)和一个长度为\(m\)的数列\(b\),求\(a\)有多少个长度为\(m\)的子串与\(b\)匹配.数列匹配指存在一种方案使两个数列中的 ...

  8. 【[NOI2018]你的名字】

    题目 可能是一个乱搞做法,同时也跪求有人能帮我分析一下复杂度 还是先来看比较简单的\(68pts\),也就是\(l=1,r=|S|\)的情况 我们可以直接把\(S\)串和所有的\(T\)串一起建一个广 ...

  9. [USACO12FEB]牛券Cow Coupons

    嘟嘟嘟 这其实是一道贪心题,而不是dp. 首先我们贪心的取有优惠券中价值最小的,并把这些东西都放在优先队列里,然后看[k + 1, n]中,有些东西使用了优惠券减的价钱是否比[1, k]中用了优惠券的 ...

  10. U3

    一个项目里面可以有多个Activity AndroidManifest.xml<intent-filter> <action android:name="android.i ...