红穆笔记
首頁 語言筆記 PHP將網頁生成pdf文件
語言筆記 PHP

PHP將網頁生成pdf文件

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

 

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

PHP ob函数记录

PHP ob函數記錄 語言筆記 PHP

下面3個函數的用法 ob_get_contents(); ob_end_clean(); ob_start(); 可以藉助這幾個函數實現緩衝本地文件,以及執行本地腳本代碼。 使用ob_start()把輸出的代碼存到緩衝區,頁面不會顯示出來; 然後用ob_get_contents得到緩衝區的數據。 o…
👁 141
PHP preg

PHP preg 語言筆記 PHP

preg_match_all 函數用於執行一個全局正則表達式匹配。preg_match_all() 語法int preg_match_all ( string $pattern , string $subject [, array &amp;$matches [, int $flags = PREG…
👁 169
PHP 三元运算符与if的详解

PHP 三元運算符與if的詳解 語言筆記 PHP

三元運算符語條件 ? 結果1 : 結果2 說明:問號前面的位置是判斷的條件,如果滿足條件時結果1,不滿足時結果2。本文對三元運算符和if...else...進行對比詳解,希望對大家有所幫助。今天在改論文在線的時候遇到了一個語句看不懂:$if_summary = $row['IF_SUMMARY']=…
👁 189
PHP强制转换类型

PHP強制轉換類型 語言筆記 PHP PHP採集 PHP與mysql

獲取數據類型1.如果想查看某個表達式的值和類型,用var_dump()。 2.如果只是想得到一個易讀懂的類型的表達方式用於調試,用 gettype()。3.要查看某個類型,不要用 gettype(),而用is_type() 函數。字符串轉換爲數值當一個字符串被當作數字來求值時,根據以下規則來決定結果…
👁 232
php 字符串中是否包含指定字符串的多种方法

php 字符串中是否包含指定字符串的多種方法 語言筆記 PHP

strstrstrstr() 函數搜索一個字符串在另一個字符串中的第一次出現。該函數返回字符串的其餘部分(從匹配點)。如果未找到所搜索的字符串,則返回 false。代碼如下:&lt;?php $email = 'user@example.com'; $domain = strstr($email, …
👁 138

推薦閱讀

(PC+WAP)建筑节能遮阳物件类营销型网站pbootcms模板 节能建筑类网站源码下载 0724

(PC+WAP)建築節能遮陽物件類營銷型網站pbootcms模板 節能建築類網站源碼下載 0724 實用收藏 pbootcms模板

一款營銷型建築節能與遮陽產品企業PbootCMS網站模板,同時支持PC與移動端。設計風格清新綠色,強調節能環保理念。頁面重點突出了遮陽產品、節能方案及工程案例,有助於建築節能公司在線上高效獲客並展示技術優勢。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓…
👁 40
响应式在线教育培训类网站模板 0190

響應式在線教育培訓類網站模板 0190 實用收藏 易優模板

一款針對在線教育培訓類企業的eyoucms響應式網站模板。設計風格現代教育,能夠展示在線課程、師資力量、教學平臺及學員成果。有助於教育科技公司在線上吸引學生,提升品牌知名度。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優…
👁 54
帝国CMS 个人网站博客文章新闻资讯响应式HTML5响应式手机模板 053

帝國CMS 個人網站博客文章新聞資訊響應式HTML5響應式手機模板 053 實用收藏 帝國模板

模板用帝國CMS新版爲核心。整站設計高端大氣簡潔,SEO合理!適合個人博客、資訊、文章,自適應手機等平板設備!所有修改全部後臺管理!簡單快速!全站列表採用下拉加載方式,爲了SEO可靠性,自動下拉加載方式並採用了真實分頁源代碼!預覽圖解壓密碼🔒 隱藏內容:評論後查看如果下載頁面沒有密碼提示,密碼默認爲…
👁 1646
响应式职业教育网站模板 0851

響應式職業教育網站模板 0851 實用收藏 易優模板

此套eyoucms響應式模板適用於職業教育行業,設計風格專業教育,能夠展示職業教育課程、培訓項目、就業服務及師資力量。有助於職業培訓機構在線上吸引學員,提升品牌知名度。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS…
👁 45
(PC+WAP)绿色营销型发电机pbootcms网站模板 机电机械设备类网站源码下载 0092

(PC+WAP)綠色營銷型發電機pbootcms網站模板 機電機械設備類網站源碼下載 0092 實用收藏 pbootcms模板

這套PbootCMS模板採用綠色營銷風格,專注於發電機與機電機械設備行業,支持PC和移動端。設計風格專業硬朗,能夠展示發電機組產品與工業應用案例。有助於發電機廠家或機電公司在線上高效展示產品並獲取精準客戶詢盤。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解…
👁 33
(自适应手机端)水上运动设备pbootcms网站模板 潜水服务公司网站源码下载 0725

(自適應手機端)水上運動設備pbootcms網站模板 潛水服務公司網站源碼下載 0725 實用收藏 pbootcms模板

一款水上運動設備與潛水服務PbootCMS網站模板,支持PC與WAP端。設計風格清爽動感,適合展示潛水裝備、水上運動器材及培訓服務。有助於戶外運動公司在線上吸引極限運動愛好者。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn相關文…
👁 52