PHP将网页生成pdf文件

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('文件不齐全');
}

 

© 版权声明
THE END
喜欢就支持一下吧
点赞7
评论 抢沙发

请登录后发表评论

    暂无评论内容