如何使用php将docx文档转换为html?
我希望能够上传MS Word文档并将其导出到我的站点中的页面。
有没有办法做到这一点?
我希望能够上传MS Word文档并将其导出到我的站点中的页面。
有没有办法做到这一点?
//FUNCTION :: read a docx file and return the string
function readDocx($filePath) {
// Create new ZIP archive
$zip = new ZipArchive;
$dataFile = 'word/document.xml';
// Open received archive file
if (true === $zip->open($filePath)) {
// If done, search for the data file in the archive
if (($index = $zip->locateName($dataFile)) !== false) {
// If found, read it to the string
$data = $zip->getFromIndex($index);
// Close archive file
$zip->close();
// Load XML from a string
// Skip errors and warnings
$xml = DOMDocument::loadXML($data, LIBXML_NOENT | LIBXML_XINCLUDE | LIBXML_NOERROR | LIBXML_NOWARNING);
// Return data without XML formatting tags
$contents = explode('\n',strip_tags($xml->saveXML()));
$text = '';
foreach($contents as $i=>$content) {
$text .= $contents[$i];
}
return $text;
}
$zip->close();
}
// In case of failure return empty string
return "";
}
ZipArchive和DOMDocument都在PHP内部,所以你不需要安装/包含/需要额外的库。
可以使用 PHPDocX。
它几乎支持所有HTML CSS样式。此外,您可以使用模板通过 向 HTML 添加额外的格式。replaceTemplateVariableByHTML
PHPDocX的HTML方法也允许直接使用Word样式。您可以使用类似如下的方法:
$docx->embedHTML($myHTML, array('tableStyle' => 'MediumGrid3-accent5PHPDOCX'));
如果您希望所有表都使用 MediumGrid3 重音 5 Word 样式。embedHTML 方法及其模板版本 () 保留继承,这意味着您可以使用预定义的 Word 样式并使用 CSS 重写其任何属性。replaceTemplateVariableByHTML
您还可以使用“JQuery类型”选择器提取HTML的选定部分。