PhpWord 導(dǎo)出生成word文件帶圖片處理,解決富文本導(dǎo)出問題完整案例
PhpWord 導(dǎo)出生成word文件帶圖片處理,解決富文本導(dǎo)出問題完整案例
引入文件
use ZipArchive; use PhpOffice\PhpWord\IOFactory; use PhpOffice\PhpWord\PhpWord; use PhpOffice\PhpWord\Element\InlineImage; use PhpOffice\PhpWord\SimpleType\Jc;
php 后端處理數(shù)據(jù)
// 創(chuàng)建一個臨時目錄用于存儲導(dǎo)出的Word文件
$tmpPath = './temp/'; if (!is_dir($tmpPath)) {
mkdir($tmpPath);
} // 循環(huán)處理每篇文章
foreach ($artRes as $article) { // 創(chuàng)建一個PhpWord實例
$phpWord = new PhpWord();
$articleTitle = $article['title']; // 創(chuàng)建一個新的Word文檔
$section = $phpWord->addSection(); //標(biāo)題
$section->addText($articleTitle, array('name' => '黑體', 'size' => 16), array('align'=>'center')); //正文處理
if ($article['markdown']=='markdown'){
$content_html=json_decode($article['content'],true);
$articleContent=$content_html['html'];
}else{
$articleContent = $article['content'];
} //寫入文檔
\PhpOffice\PhpWord\Shared\Html::addHtml($section, $articleContent); // 保存Word文檔為文件
$filename = $tmpPath . $articleTitle . '.docx';
$phpWord->save($filename);
} // 創(chuàng)建一個臨時壓縮文件
$zipPath = './temp/export.zip';
$zip = new ZipArchive();
$zip->open($zipPath, ZipArchive::CREATE | ZipArchive::OVERWRITE); // 將所有導(dǎo)出的Word文件添加到壓縮文件中
$wordFiles = glob($tmpPath . '*.docx'); foreach ($wordFiles as $wordFile) {
$zip->addFile($wordFile, basename($wordFile));
} // 關(guān)閉并保存壓縮文件
$zip->close(); // 刪除臨時目錄中的Word文件
foreach ($wordFiles as $wordFile) {
unlink($wordFile);
} // 刪除臨時目錄
@rmdir($tmpPath); //返回數(shù)據(jù)
/*
* code 狀態(tài)
* msg 下載地址
* name 下載后重命名
* */
return json(['code'=>1,"msg"=>'http://s.hbsjsd.cn/temp/export.zip','name'=>time().'.zip']);前端請求
$.post("/Wordexport/export", data.field, function (res) {
if (res.code == 1) {
var url=res.msg;
downloadFile(url,res.name)
}
})執(zhí)行下載
//下載文件
function downloadFile(url, fileName) {
console.log(url)
// 創(chuàng)建一個隱藏的<a>元素
var link = document.createElement('a');
link.href = url; // 設(shè)置下載的文件名
link.download = fileName; // 將<a>元素加入到文檔中
document.body.appendChild(link); // 模擬點擊<a>元素來觸發(fā)下載
link.click(); // 移除<a>元素
document.body.removeChild(link);
}
關(guān)鍵詞: PhpWord導(dǎo)出生成word文件帶圖片處理 解決富文本導(dǎo)出問題完整案例
鄂公網(wǎng)安備42060002000147