PHP富⽂本转html、word、pdf⽂件下载富⽂本我这⾥使⽤的是layui,因为 它轻……
然后进⾏富⽂本的数据存取后,取出你要的内容:
1、转html
$html = "这⾥是你要的内容!";
第⼀⾏是因为图⽚路径不对,显⽰不出来,所有对图⽚路径进⾏了正确的替换
或者利⽤phpword也可以转为html,如上图phpword的demo,可以参考
phpword(composer):composer require phpoffice/phpword
<?PHP
require_once ' bootstrap.php中' ;
//创建新⽂档...
$ phpWord = new \ PhpOffice \ PhpWord \ PhpWord();
/ *注意:您附加到⽂档的任何元素都必须位于节中。* /
//添加⼀个空的部分到⽂档中...
$ section = $ phpWord - > addSection();
//添加⽂本元素默认......风格的字体有第
$节- > addText(
“ ‘借鉴昨天,活在今天,憧憬明天。‘ ’最重要的是不要停⽌问问题。’ ”。'(爱因斯坦)');
/ *
*注意:可以通过三种⽅式⾃定义添加的Text元素的字体样式:
* - inline;
* - 使⽤指定的字体样式(隐式创建新的字体样式对象);
* - 使⽤明确创建的字体样式对象。
* /
//'添加带有字体⾃定义内联的⽂本元素...
$ section - > addText(
''伟⼤的成就通常是由于伟⼤的牺牲''。'⽽且永远不是⾃私的结果。''。'(Napoleon Hill)', array( ' name ' => ' Tahoma ', ' size ' => 10)); //使⽤指定字体样式⾃定义字体添加⽂本元素...
$ fontStyleName = ' oneUserDefinedStyle ' ;
$ phpWord - > addFontStyle(
$ fontStyleName, array( ' name ' => ' Tahoma ', ' size ' => 10, ' color ' => ' 1B2232 ', ' bold ' => true)); $ section - >
“最⼤的成就是不是永远不跌倒,‘
’但在再度上涨你掉下去了。” '。'(Vince Lombardi)',$ fontStyleName);
//添加使⽤明确创建的字体样式对象⾃定义字体的⽂本元素...
$ fontStyle = new \ PhpOffice \ PhpWord \ Style \ Font();
$ fontStyle - > setBold( true);
$ fontStyle - > setName( ' Tahoma ');
$ fontStyle - > setSize( 13);
$ myTextElement = $节- > addText( ' “相信你能和你\'重新⼀半。“(西奥多·罗斯福)');
$ myTextElement - > setFontStyle($ fontStyle);
//将⽂档保存为OOXML⽂件...
$ objWriter = \ PhpOffice \ PhpWord \ IOFactory :: createWriter( $ phpWord, ' Word2007 ');
$ objWriter - > save( ' helloWorld.docx ');
//将⽂档保存为ODF⽂件...
$ objWriter = \ PhpOffice \ PhpWord \ IOFactory :: createWriter( $ phpWord, ' ODText ');
$ objWriter - > save( ' helloWorld.odt ');
//将⽂档保存为HTML⽂件...
$ objWriter = \ PhpOffice \ PhpWord \ IOFactory :: createWriter( $ phpWord, ' HTML ');
$ objWriter - > save( ' helloWorld.html ');
/ *注意:我们跳过RTF,因为它不是基于XML的,需要⼀个不同的例⼦。* /
/ *注意:我们跳过PDF,因为“HTML-to-PDF”⽅法⽤于创建PDF⽂档。* /
2、转word
(1)使⽤PHP内置file_put_contents(),我试着这样保存为word后,原来的html标签会全部存在,除⾮你需要富⽂本或html源码,否则没什么意义。
html如何下载(2)利⽤缓存:图⽚下载到本地后要显⽰,只能使⽤⽹络地址(IP或域名)
$wors = str_replace("/uploads/layui/","172.16.3.125/notes/public/uploads/layui/",$html);
$this->start();
$newname = 'pppp';
$wordname = 'files/word/'.$newname.".doc";//⽣成⽂件路径
echo $wors;
$this->save($wordname);
ob_flush();//每次执⾏前刷新缓存
flush();
function start()
{
ob_start();
echo '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<xml><w:WordDocument><w:View>Print</w:View></xml>
</head><body>';
}
function save($path)
{
echo "</body></html>";
$data = ob_get_contents();
ob_end_clean();
$this->wirtefile ($path,$data);
}
function wirtefile ($fn,$data)
{
$fp=fopen($fn,"wb");
fwrite($fp,$data);
fclose($fp);
}
(3)利⽤phpword也可以转为word,如上图phpword的demo,可以参考,但图⽚下载到本地后要显⽰,同样只能使⽤⽹络地址(IP或域名)
(4)⽹上有通过html转为mht然后转带图⽚⽂本word的实例,以为太长了,所以以后看⼀下 ε≡٩(>₃<)۶ ⼀⼼向学
3、转pdf
(1)HTML-to-PDF:听说这个但是我没试,⼤家⽤过的可以指点⼀⼆
(2)使⽤mpdf(⿇婆⾖腐)扩展(习惯composer):composer require mpdf/mpdf
public function topdf()
{
$html = Db::table('diary')->where('id',12)->find();
$title = '<h1 >' . $html['notename'] . '</h1>';
$content = $html['content'];
$mpdf = new Mpdf();
$mpdf->autoScriptToLang = true;
$mpdf->autoLangToFont = true;
$header='<table width="95%" ><tr>
<td width="10%"></td>
<td width="80%" align="center" >这是我的页眉</td>
<td width="10%" ></td>
</tr></table>';
$mpdf->SetHTMLHeader($header); //页眉
// $mpdf -> WriteHTML(' <h1> Hello world!</h1> ');
$mpdf -> WriteHTML($title.$content);
$mpdf->Output();
// $mpdf -> Output('files/word/one.pdf','D'); //存为⽂件
}
欢迎⼤家指点其中不正确的地⽅/鞠躬
终于完了……(欢迎多多指教)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论