PHP将网页生成pdf文件
时间:2023年12月16日
/来源:网络
/编辑:佚名
1.安装tecnickcom/tcpdf
2.代码:
<?php
// 引入TCPDF类文件
require_once './vendor/autoload.php';
require('../../action/class/common.php');
// use TCPDF\TCPDF;
$file = glob('../bak/*.png');
if(empty($file[0])){
die('文件已经全部上传完成!');
}
$filename = basename($file[0]);
$puzi = explode('-',str_replace('.png','',$filename));
// print_r($file[0]);die;
$puziId = $puzi[0];
// 查询数据库,看是否存在同名文件
$sql = "SELECT * FROM `M_musicScore` WHERE `scoreID` = {$puziId} ORDER BY `num` DESC";
$result = mysqli_query($conn,$sql);
$data = mysqli_fetch_array($result, MYSQLI_ASSOC);
// print_r($data);die;
$s = new diaomao();
// $s->puziMake($s->jiamiPuZi(105349));
if(!empty($data['scoreID']) && $data['pdf'] !== 1){
// 生成PDF文件名
$pdfname = preg_replace('/[^\p{L}\p{N}\s]/u', ' ', $data['title']) . '-' . $data['scoreID'] . '.pdf';
$pdfname = __DIR__ .'/pdf/'. $pdfname;
// print_r($pdfname);
// die;
// print_r($pdfname);die;
// 谱子存在,查询bak目录谱子是否齐全
$files = glob('../bak/'.$data['scoreID'].'-*.png');
// print_r($files);
// print_r('../bak/'.$data['scoreID'].'-*.png');
if(count($files) == $data['num']){
foreach ($files as $k=>$v){
$html.='<p style="text-align:center;"><img src="../bak/'.$data['scoreID'].'-'.$k.'.png"></p>';
}
$html = rtrim($html, "<br>");
}
// 创建TCPDF对象
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
// 设置文档属性和页面选项
$pdf->SetCreator('HONGMU');
$pdf->SetAuthor('作者');
$pdf->SetTitle('标题');
$pdf->SetSubject('WWW.I9J.CN');
$pdf->SetHeaderData('', 0, '', '', array(0,0,0), array(255,255,255));
// 设置页眉的logo和样式
$pdf->setFooterData(array(0,0,0), array(255,255,255));
// 添加新页面,并将HTML页面装入PDF文件
$pdf->AddPage();
$pdf->writeHTML($html, true, false, true, false, '');
// 保存PDF文件
$pdf->Output($pdfname , 'F');
// 将数据表的pdf值设置为1
$updateSql = "UPDATE `M_musicScore` SET `pdf` = 1 WHERE `scoreID` = {$puziId}";
mysqli_query($conn, $updateSql);
// 移动文件到pdf目录
if (!file_exists(__DIR__ . '/pdf')) {
// 如果pdf目录不存在,则创建pdf目录
@mkdir(__DIR__ . '/yunpan');
}
foreach ($files as $k => $v) {
$newFilePath = str_replace('bak', 'yunpan', $v);
if (rename($v, $newFilePath)) {
} else {
die( '文件移动失败!<br>');
}
}
if (mysqli_affected_rows($conn) > 0) {
// 输出PDF文件
// $pdf->Output('预览.pdf', 'I');
echo '成功生成pdf文件';
} else {
die( '数据库写入失败!<br>');
}
}else{
// $files = glob('../bak/'.$data['scoreID'].'-*.png');
// // print_r($files);die;
// // print_r('../bak/'.$data['scoreID'].'-*.png');
// if(!empty($files)){
// foreach ($files as $k=>$v){
// $newFilePath = str_replace('bak', 'yunpan', $v);
// if (rename($v, $newFilePath)) {
// echo '以将文件移动到备份目录bak1。<br>';
// } else {
// die( '文件移动失败!<br>');
// }
// }
// }
die('文件不齐全');
}
2.代码:
<?php
// 引入TCPDF类文件
require_once './vendor/autoload.php';
require('../../action/class/common.php');
// use TCPDF\TCPDF;
$file = glob('../bak/*.png');
if(empty($file[0])){
die('文件已经全部上传完成!');
}
$filename = basename($file[0]);
$puzi = explode('-',str_replace('.png','',$filename));
// print_r($file[0]);die;
$puziId = $puzi[0];
// 查询数据库,看是否存在同名文件
$sql = "SELECT * FROM `M_musicScore` WHERE `scoreID` = {$puziId} ORDER BY `num` DESC";
$result = mysqli_query($conn,$sql);
$data = mysqli_fetch_array($result, MYSQLI_ASSOC);
// print_r($data);die;
$s = new diaomao();
// $s->puziMake($s->jiamiPuZi(105349));
if(!empty($data['scoreID']) && $data['pdf'] !== 1){
// 生成PDF文件名
$pdfname = preg_replace('/[^\p{L}\p{N}\s]/u', ' ', $data['title']) . '-' . $data['scoreID'] . '.pdf';
$pdfname = __DIR__ .'/pdf/'. $pdfname;
// print_r($pdfname);
// die;
// print_r($pdfname);die;
// 谱子存在,查询bak目录谱子是否齐全
$files = glob('../bak/'.$data['scoreID'].'-*.png');
// print_r($files);
// print_r('../bak/'.$data['scoreID'].'-*.png');
if(count($files) == $data['num']){
foreach ($files as $k=>$v){
$html.='<p style="text-align:center;"><img src="../bak/'.$data['scoreID'].'-'.$k.'.png"></p>';
}
$html = rtrim($html, "<br>");
}
// 创建TCPDF对象
$pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', false);
// 设置文档属性和页面选项
$pdf->SetCreator('HONGMU');
$pdf->SetAuthor('作者');
$pdf->SetTitle('标题');
$pdf->SetSubject('WWW.I9J.CN');
$pdf->SetHeaderData('', 0, '', '', array(0,0,0), array(255,255,255));
// 设置页眉的logo和样式
$pdf->setFooterData(array(0,0,0), array(255,255,255));
// 添加新页面,并将HTML页面装入PDF文件
$pdf->AddPage();
$pdf->writeHTML($html, true, false, true, false, '');
// 保存PDF文件
$pdf->Output($pdfname , 'F');
// 将数据表的pdf值设置为1
$updateSql = "UPDATE `M_musicScore` SET `pdf` = 1 WHERE `scoreID` = {$puziId}";
mysqli_query($conn, $updateSql);
// 移动文件到pdf目录
if (!file_exists(__DIR__ . '/pdf')) {
// 如果pdf目录不存在,则创建pdf目录
@mkdir(__DIR__ . '/yunpan');
}
foreach ($files as $k => $v) {
$newFilePath = str_replace('bak', 'yunpan', $v);
if (rename($v, $newFilePath)) {
} else {
die( '文件移动失败!<br>');
}
}
if (mysqli_affected_rows($conn) > 0) {
// 输出PDF文件
// $pdf->Output('预览.pdf', 'I');
echo '成功生成pdf文件';
} else {
die( '数据库写入失败!<br>');
}
}else{
// $files = glob('../bak/'.$data['scoreID'].'-*.png');
// // print_r($files);die;
// // print_r('../bak/'.$data['scoreID'].'-*.png');
// if(!empty($files)){
// foreach ($files as $k=>$v){
// $newFilePath = str_replace('bak', 'yunpan', $v);
// if (rename($v, $newFilePath)) {
// echo '以将文件移动到备份目录bak1。<br>';
// } else {
// die( '文件移动失败!<br>');
// }
// }
// }
die('文件不齐全');
}
新闻资讯 更多
- 【建站知识】查询nginx日志状态码大于400的请求并打印整行04-03
- 【建站知识】Python中的logger和handler到底是个什么?04-03
- 【建站知识】python3拉勾网爬虫之(您操作太频繁,请稍后访问)04-03
- 【建站知识】xpath 获取meta里的keywords及description的方法04-03
- 【建站知识】python向上取整以50为界04-03
- 【建站知识】scrapy xpath遇见乱码解决04-03
- 【建站知识】scrapy爬取后中文乱码,解决word转为html 时cp1252编码问题04-03
- 【建站知识】scrapy采集—爬取中文乱码,gb2312转为utf-804-03