php实现pdf文件的生成与下载

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

这个有点复杂的,我们一步一步来说明。

受先我们要下载pdf需要的文件,搜索‘php生成pdf’找到相关进行下载,这里不做介绍

//pdf下载$name = $_SESSION['ex_uname'];$name_pdf=$name.'.pdf';$url = $_SERVER['DOCUMENT_ROOT']."/static/download/".$name;if (false == file_exists($url.'/'.$name_pdf)) {             $name = $_SESSION['ex_uname'];$url = $_SERVER['DOCUMENT_ROOT']."/static/download/".$name;@mkdir ( $_SERVER['DOCUMENT_ROOT']."/static/download/".$name, 0777 );//新建文件夹//echo dirname(dirname(__FILE__)).'/static/pdf/tdpdf/tcpdf_autoconfig.php';exit;require_once($_SERVER['DOCUMENT_ROOT'].'/static/pdf/tcpdf/tcpdf.php');require_once($_SERVER['DOCUMENT_ROOT'].'/static/pdf/opendir.php');$var_array = require($_SERVER['DOCUMENT_ROOT'].'/static/pdf/signconfig.php');$str_array = require($_SERVER['DOCUMENT_ROOT'].'/static/pdf/rayconfig.php');class MYPDF extends TCPDF {public function Header() {$bMargin = $this->getBreakMargin();$auto_page_break = $this->AutoPageBreak;$this->SetAutoPageBreak(false, 0);$this->SetAutoPageBreak($auto_page_break, $bMargin);$this->setPageMark();}}$id = $_SESSION['ex_uid'];$str  = APP::M('advset')->get_exlist($id);$companyname = $str['companyname'];$username = $str['username'];$fullname = $str['fullname'];$telphone = $str['telphone'];$address = $str['address'];$fax = $str['fax'];$email = $str['email']; //print_r($str);exit;//实例化类并设置一些PDF属性$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$pdf->SetCreator(PDF_CREATOR);$pdf->SetAuthor('Note');$pdf->SetTitle('Note');$pdf->SetSubject('TCPDF Tutorial');$pdf->SetKeywords('TCPDF,文件');$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);$pdf->SetHeaderMargin(0);$pdf->SetFooterMargin(0);$pdf->setPrintFooter(false);$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);//调用遍历文件的类$biao = new opdirsign();$jet = $biao->kob();$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);$i=1;foreach($jet as $key=>$value){//添加新的一页$pdf->AddPage();$bMargin = $pdf->getBreakMargin();$auto_page_break = $pdf->getAutoPageBreak();$pdf->SetAutoPageBreak(false, 0);$img_file = K_PATH_IMAGES.'sign/'.$value["name"];$pdf->Image($img_file, 0, 0, 210, 297, '', '', '', true, 300, '', false, false, 0);$pdf->SetAutoPageBreak($auto_page_break, $bMargin);$pdf->setPageMark();$pdf->SetFont('cid0cs', '', 10);//这里开始定位$bot = explode(",",$var_array[$i]['firm']);$bot[0] == 0 && $bot[1] ==0?" " :$pdf->writeHTMLcell($bot[0],$bot[1],$bot[2],$bot[3],$companyname, 0, 0, false, false, '',0,0);$jot = explode(",",$var_array[$i]['address']);$jot[0] == 0?" ":$pdf->writeHTMLcell($jot[0],$jot[1],$jot[2],$jot[3],$address, 0, 0, false, false, '',0,0);$aot = explode(",",$var_array[$i]['booth']);$aot[0] ==0?" ":$pdf->writeHTMLcell($aot[0],$aot[1],$aot[2],$aot[3],$username, 0, 0, false, false, '',0,0);$cot = explode(",",$var_array[$i]['touch']);$cot[0] == 0?" ":$pdf->writeHTMLcell($cot[0],$cot[1],$cot[2],$cot[3],$fullname, 0, 0, false, false, '',0,0);$dot = explode(",",$var_array[$i]['tel']);$dot[0] == 0 ?" ":$pdf->writeHTMLcell($dot[0],$dot[1],$dot[2],$dot[3],$fax, 0, 0, false, false, '',0,0);$eot = explode(",",$var_array[$i]['fax']);$eot[0] == 0 ?" " :$pdf->writeHTMLcell($eot[0],$eot[1],$eot[2],$eot[3],$telphone, 0, 0, false, false, '',0,0);$fot = explode(",",$var_array[$i]['email']);$fot[0] == 0 ?" ":$pdf->writeHTMLcell($fot[0],$fot[1],$fot[2],$fot[3],$email, 0, 0, false, false, '',0,0);$hot = explode(",",$var_array[$i]['phone']);$hot[0] == 0 ?" " :$pdf->writeHTMLcell($hot[0],$hot[1],$hot[2],$hot[3],$phone, 0, 0, false, false, '',0,0);$i++;}$iconv = iconv("UTF-8","gbk//TRANSLIT","资料下载");//echo $mingz;exit;$pdf->Output($name.'_optional.pdf', 'd');$pdf->Output($url.'/'.$name.'_optional_'.$iconv.'.pdf', 'F');
}


转载于:https://my.oschina.net/meng527/blog/364276

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#-线程

多线程通常一个应用就是一个进程,进程中一般是一个线程,执行一个操作,其他操作等待。多线程,看起来是一个进程,有多个线程同时运行,互相不必等待,实际是把cpu的空闲时间利用起来,cpu…

window 效率神器:Wox

官方网站 http://www.getwox.com/ 下载后以管理员身份运行,右下角可以看到Wox的图标。点击setting可以进入主界面 如果看不懂可以将语言设置为中文 默认快捷键是Alt space 热键呼出。你理应习惯这个风格。这是你高效率的开始 进入主题(Theme&#xff09…

Visual Studio listView控件绑定SQL Server数据库并动态显示数据,调整列宽

在Visual Studio中,可以用listView控件直接从SQL Server数据库中动态读取数据,并自动调整列宽。本文讲解如何通过ADO.net连接SQL Server数据库,并用SqlDataReader读取数据,并显示到listview控件中。 代码中的MyDBase为自定义的使用ADO.NET方法交互数据库的类。代码获取:《…

趣学算法之斐波拉契数列实现

1、斐波拉契数列 f(1) = 1; f(2) = 1; f(3) = f(1) + f(2);以此内推1 x = 1 f(x) = 1 x = 2f(x - 1) + f(x - 2) x >= 3 2、代码实现 #include <stdio.h> #include <stdlib.h>int fib1(int n)…

java mysql数据去重_java使用MySQL和HQL数据去重

思路先查询出满足某种条件的数据的最小ID&#xff0c;然后删除最小ID以外的数据就实现了去重实例查询最小ID的重复数据select * from oms_relation_model ormwhere orm.fd_id(select min(t.fd_id) from oms_relation_model twhere orm.fd_ekp_idt.fd_ekp_id and orm.fd_ekp_idt…

scala入门-01-IDEA安装scala插件

2019独角兽企业重金招聘Python工程师标准>>> 由于本人一直使用IDEA开发Java项目&#xff0c;目前scala也可以使用IDEA开发&#xff0c;下载地址&#xff1a;http://www.jetbrains.com/idea/ Community Edition FREE 和 Ultimate Edition Free 30-day trial都支撑s…

GeneralUpdate20220323里程碑版本发布

大家好我是juster&#xff0c;GeneralUpdate的开源项目作者。这次将发布GeneralUpdate里程碑版本&#xff0c;该版本发生了巨大改变历时4个月的时间终于要和大家见面了。开源不易希望大家能多多支持。可能或多或少会有些bug希望大家多多反馈&#xff0c;这里也有一个小小的心愿…

信息安全系统设计基础第七周学习总结

存储器的层次结构 存储技术 静态RAMSRAM将每一位存储在双稳态的存储器单元中 动态RAMDRAM将每一位存储为对电容充电。 传统的DRAMd*w的DRAM存储dw位信息 增强的DRAM 非易失性存储器 访问主存 磁盘存储 磁盘构造 磁盘容量公式&#xff1a;磁盘容量&#xff08;字节数/扇区) *…

FFmpeg的HEVC解码器源码简单分析:解码器主干部分

HEVC源码分析文章列表&#xff1a;【解码 -libavcodec HEVC 解码器】FFmpeg的HEVC解码器源码简单分析&#xff1a;概述FFmpeg的HEVC解码器源码简单分析&#xff1a;解析器&#xff08;Parser&#xff09;部分FFmpeg的HEVC解码器源码简单分析&#xff1a;解码器主干部分FFmpeg的…

C#输入姓名或者拼音码(姓名的首字母,大小写均可)进行快速模糊查找

第一步:在SQL Server中编写获取输入汉字的拼音码函数,详见SQL Server编写函数获取汉字的拼音码(首字母) 第二步:增加含有拼音码字段的人员记录 private void button_Insert_Click(object sender, EventArgs e){string NAME = textBox_name.Text.Trim();string SEX = com…

趣学算法之哥德巴赫猜想的实现

1、哥德巴赫猜想 任意大于2的偶数,都可以表示成为2个素数之和 2、代码实现 #include <iostream> #include <math.h>using namespace std;//判断是否是质数 bool isPrime(int n) {if (n < 2)return false;if (n == 2)return true;for (int i = …

.NET 产品组问卷调查|和我们分享你的 .NET 使用情况

作为一名 .NET 开发者&#xff0c;是什么让你开始学习 .NET&#xff1f;在你看来 .NET 在哪些场景下最有效&#xff1f;在平时的工作或学习中&#xff0c;你都在哪里学习 .NET 资源&#xff1f;你更希望在哪里看到更多 .NET 本地化内容&#xff1f;你觉得 .NET 的社区推动力如何…

win7 部署tomcat

1,下载 jdk:http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u3-download-1501626.html 2,下载tomcat:http://tomcat.apache.org/download-70.cgi 3,各自安装 4&#xff0c;配置环境变量&#xff1a; JAVA_HOMEC:\Program Files\Java\jdk1.7.0_03JRE_HOME C:\P…

C#+SQL Server数据库系统操作日志的实现完整案例

在开发数据库系统时,通常需要添加系统日志功能。系统日志是用来记录用户、管理员等对系统的操作记录,系统操作日志的实现方式有很多,本文基于C#和SQL Server数据库,通过设计日志记录表、编写操作记录存储过程、前端调用与展示结果等过程,实现操作日志功能完整程序设计流程…

使用机器学习算法在 .NET Core 中运行的 100% C# 开源 AI 聊天机器人平台构建器...

简介BotSharp是一个用于 AI Bot 平台构建器的开源机器学习框架。该项目涉及自然语言理解、计算机视觉和音频处理技术&#xff0c;旨在推动智能机器人助手在信息系统中的开发和应用。开箱即用的机器学习算法让普通程序员可以更快、更轻松地开发人工智能应用程序。地址https://gi…

Android之数据转化崩溃问题

1、问题和原因 程序崩溃&#xff0c;前期没有发现&#xff0c;后面发现有问题&#xff0c;是因为我写Intergr.parseInt的时候转化异常导致&#xff0c;原因是因为我写的代码分割用的常量&#xff0c;在java层写的常量&#xff0c;后续用英语版本的手机就有问题2、解决办法 确保…

win下nginx+php+mysql服务器套装_WNMP(Windows+Nginx+PHP+MySQL)安装

这篇文章介绍的内容是关于WNMP(Windows Nginx PHP MySQL) 安装&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下最近在开发一个新的项目&#xff0c;环境用的是&#xff1a;Nginx1.10.3 下载地址&#xff1a; http://nginx.o…

极光推送 api ios参数问题

这是首个app项目&#xff0c;推送用的是极光推送jpush 由于用官方文档出现接收多条的问题&#xff0c;在网上找到一套封装好的&#xff0c;非常感觉这位开发者 //推送。指定人error_reporting(E_ALL^E_NOTICE);class ApipostAction{ private $_appkeys xxx; private $_mas…

Envi IDL中多元线性回归计算方法

IDL中提供了丰富的数学运算函数。其中部分函数同时提供了源码文件。例如今天介绍的Regress函数,可以在IDL控制台运行“.e regress.pro

本地开发时连接后台数据库时出现的错误,附自救方法

2019独角兽企业重金招聘Python工程师标准>>> 一、跨域问题 现状&#xff1a;后端跨域权限无法打开&#xff0c;现在的浏览器出于安全策略的限制&#xff0c;都是不允许跨域的&#xff0c;但是开发的时候经常需要一些别的域的接口&#xff0c;特别是一些接口不是自己…