Я хочу иметь возможность загружать документ 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.
Он поддерживает практически все стили CSS CSS. Кроме того, вы можете использовать шаблоны для добавления дополнительного форматирования в свой HTML через replaceTemplateVariableByHTML
.
HTML-методы PHPDocX также позволяют прямое использование стилей Word. Вы можете использовать что-то вроде этого:
$docx->embedHTML($myHTML, array('tableStyle' => 'MediumGrid3-accent5PHPDOCX'));
Если вы хотите, чтобы все ваши таблицы использовались в стиле Word среды MediumGrid3-accent5. Метод embedHTML, а также его версия для шаблонов (replaceTemplateVariableByHTML
) сохраняют наследование, а это значит, что вы можете использовать предопределенный стиль Word и переопределить с CSS любые его свойства.
Вы также можете извлечь выбранные части своего HTML с помощью селекторов типа JQuery.
это может быть полезно для вас Как конвертировать Docx в HTML
Вы можете конвертировать документы Word docx в html с помощью библиотеки Print2flash. Вот фрагмент PHP с моего клиентского сайта, который преобразует документ в html:
include("const.php");
$p2fServ = new COM("Print2Flash4.Server2");
$p2fServ->DefaultProfile->DocumentType=HTML5;
$p2fServ->ConvertFile($wordfile,$htmlFile);
Он преобразует документ, путь которого указан в переменной $wordfile в файл страницы html, указанный переменной $htmlFile. Все форматирование, гиперссылки и диаграммы сохраняются. Вы можете получить требуемый файл const.php в целом с более полным образцом из Print2flash SDK.
Если вы не откажетесь от REST API, вы можете использовать:
Пример кода для RawText:
$result = $rawText -> parse($your_file)