Home  >  Article  >  Backend Development  >  Detailed example of how to convert HTML to word in PHP_php example

Detailed example of how to convert HTML to word in PHP_php example

WBOY
WBOYOriginal
2016-05-16 19:59:061378browse

The following code introduces how to transfer html into word using php. The specific content is as follows:

This has been tested. There is one disadvantage with this method. The html page code must be written in php, but it can run anyway. See the program

<&#63;php 
class word{
function start(){
ob_start();
echo '<html xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">'; 
}
function save($path)
{
echo "</html>";
$data = ob_get_contents();
}
function wirtefile($fn,$data){
$fp=fopen($fp,$data);
fwrite($fp,$data);
}
}
$html='
<table width=600 cellpadding="6" cellspacing="1" style="border:1px solid green;" style="border-collapse:collapse"> 
<tr style="border:1px solid green;"> 
<td style="border:1px solid green;">姓名</td> 
<td style="border:1px solid green;">性别</td>
<td style="border:1px solid green;">年龄</td>
<td style="border:1px solid green;">爱好</td>
<td style="border:1px solid green;">备注</td> 
</tr> 
<tr style="border:1px solid green;"> 
<td style="border:1px solid green;">张三</td> 
<td style="border:1px solid green;">男</td>
<td style="border:1px solid green;">32</td>
<td style="border:1px solid green;">足球</td>
<td style="border:1px solid green;">无</td> 
</tr> 
<tr style="border:1px solid green;"> 
<td style="border:1px solid green;"> 
李四 
</td> 
<td style="border:1px solid green;">男</td><td style="border:1px solid green;">43</td><td style="border:1px solid green;">篮球</td><td style="border:1px solid green;">无</td>
</tr> 
</table> 
';
//批量生成
//for($i=1;$i<3;$i++){
$word = new word();
$word->start();
$wordname='个人测试php生成word.doc';
echo $html;

$word->save($wordname);
header('Content-type:application/word');
header('Content-Disposition: attachment; filename='.$wordname.'');
//readfile($wordname);
ob_flush();//每次执行前刷新缓存
flush();
//}
&#63;>

Let me share with you a piece of code php to convert word to html

For a perfect solution, it is best to use windows office software to convert office to pdf or html. Libreoffice cannot convert perfectly, and wps does not have an API.

First confirm whether the com module is enabled. If there is a com_dotnet module in phpinfo, it means it is enabled. If not, modify php.ini,
The code is as follows:

com.allow_dcom = true

Remove the previous comments and restart. The official PHP website says that before PHP 5.4.5, the COM module was built-in. In fact, it may not be the case. In PHP 5.3.39 under the official website, the COM module is not built-in.
If it is not a built-in module, add it to php.ini, provided that you have the extension in your ext folder

The code is as follows:

extension=php_com_dotnet.dll

Then restart and it will be OK

function word2html($wordname,$htmlname)
{
$word = new COM("word.application") or die("Unable to instanciate Word");
$word->Visible = 1;
$word->Documents->Open($wordname);
$word->Documents[1]->SaveAs($htmlname,8);
$word->Quit();
$word = null;
unset($word);
}
word2html('D:/www/test/6.docx','D:/www/test/6.html');

Note:

1. Check the source code of the converted html, it’s quite messy

2. winword.exe will be called during the conversion process

3. If the page keeps loading, rename the document and load again.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn