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,一经查实,立即删除!

相关文章

window 效率神器:Wox

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

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

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

GeneralUpdate20220323里程碑版本发布

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

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

HEVC源码分析文章列表:【解码 -libavcodec HEVC 解码器】FFmpeg的HEVC解码器源码简单分析:概述FFmpeg的HEVC解码器源码简单分析:解析器(Parser)部分FFmpeg的HEVC解码器源码简单分析:解码器主干部分FFmpeg的…

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

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

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

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

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

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

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

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

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

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

Extjs 中的cookie设置

2019独角兽企业重金招聘Python工程师标准>>> 发现Extjs中有两个cookie 其一:设置cookie如下 saveacctisForm.getForm().findField(itemselector).getValue();Ext.util.Cookies.set(saveacct,saveacct); 取cookie中数据如下 var validStatus Ext.util.Co…

Java设计模式----策略模式(Strategy)

1. 策略模式: 策略模式,也称为政策模式,定义如下: 定义一组算法,将每个算法都封装起来,使他们可以相互转化 2. 策略模式的原理是面向对象的继承和多态。策略模式的3个角色 a. Strategy 抽象策略角色 定义每个策略或算…

遥控器原理的分页

索引:前几天看电视,使用遥控器的时候突然想到,我们的数据分页也可以用这种模式。于是敲出来一个类似于遥控器控制电视原理的分页。 现在详细介绍下上图中按钮的作用: 清除按钮:当按下0-9这个几个按钮时,如果…

.NET Core剪裁器升级瘦身引擎,并支持剪裁计划的录制和回放

上周,我发布了对.NET Core程序进行瘦身的开源软件Zack.DotNetTrimmer,与.NET Core内置的剪裁器相比,Zack.DotNetTrimmer不仅对程序的剪裁效果更好,而且还支持WPF、WinForm程序。下面是Zack.DotNetTrimmer与.NET内置的剪裁器的对比…

python 查看当前目录_Python的武器库11:os模块

说到编程语言python,有一个著名的格言"余生太短,只用python"。如果要分析为什么会存在这么一句格言?python的语法并不简单,有复杂难懂的部分,之所以又这样一句格言,是因为python中有很多强大的模…

ASP.NET Core 实现自定义认证

前言在 ASP.NET Core 中,我们常使用基于 JWT 的认证:services.AddAuthentication(option > {option.DefaultAuthenticateScheme JwtBearerDefaults.AuthenticationScheme;option.DefaultChallengeScheme JwtBearerDefaults.AuthenticationScheme;})…

图像处理工具类

为什么80%的码农都做不了架构师?>>> package net.kitbox.util;import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.Rende…

点击按钮,图片和按钮的文字发生改变

点击“隐藏”按钮&#xff0c;下方的图片隐藏&#xff0c;并且按钮上的文字由“隐藏”变为“显示”。再次点击&#xff0c;图片显示并且位子再次由“显示”变为“隐藏” 直接上代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta c…

mysql安装10045_mysql数据库5.6.45安装后的配置(离线安装包版)

二、windows10下的配置(1) 环境变量配置打开控制面板>系统和安全>系统>高级系统设置,选择环境变量,在系统变量中找到path,编辑该选项。第一行是oracle数据库的环境变量path配置&#xff0c;上图中最后一行是jdk的安装路径path配置。我们要添加mysql安装路径path配置。…

mysql 未找到命令_MySQL主从复制配置说明,一文教你搞懂数据库主从复制

一&#xff0c;MySQL主从配置原理1. mysql支持的复制格式基于语句复制(STATEMENT)&#xff08;优点&#xff09;基于statement复制的优点很明显&#xff0c;简单的记录执行语句同步到从库执行同样的语句&#xff0c;占用磁盘空间小&#xff0c;网络传输快&#xff0c;并且通过m…

.NET 5.0即将不再提供服务更新,请升级到.NET 6.0

5 月 8 日更新之后&#xff0c;微软将不再为 .NET 5.0 提供服务更新&#xff0c;包括安全修复或技术支持&#xff0c;用户需要将 .NET 版本更新到受支持的版本 (.NET 6.0 ) 才能继续接收更新。.NET 5.0 不是 LTS 版本&#xff0c;因此将在发布 18 个月或下一个版本发布后的 6 个…