Intereting Posts
Неустранимая ошибка: вызов неопределенной функции mb_detect_encoding () Как заставить mysqli исключать исключения с помощью MYSQLI_REPORT_STRICT? Угловая директива – просьба о переходе? Ошибка MYSQLi: у пользователя уже больше активных соединений «max_user_connections» php / regex: "linkify" заголовки блога PHP привязка подстановочного знака Как преобразовать десятичное число в слова (формат денег) с помощью PHP? Как преобразовать таблицу parent-child (смежность) в вложенный набор с использованием PHP и MySQL? PDO :: __ construct (): php_network_getaddresses: getaddrinfo не удалось: имя или услуга неизвестны Лучший способ включения представлений в представлениях в CodeIgniter PHP cURL: HTTP-заголовки показывают 302 и файлы cookie, файлы cookie сохраняются и отправляются, появляются одни и те же заголовки? Какую библиотеку сеансов следует использовать с CodeIgniter? Как ограничить коэффициент загрузки изображения до 16: 9 в кодеригере? Symfony – значения Pasing от одной формы к другой Каков синтаксис сортировки коллекции Eloquent несколькими столбцами?

Как преобразовать документ docx в html с помощью php?

Я хочу иметь возможность загрузить документ MS Word и экспортировать его на моем сайте.

Есть ли способ сделать это?

Solutions Collecting From Web of "Как преобразовать документ docx в html с помощью php?"

//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); в 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, вы можете использовать:

  • Апач Тика . Является проверенным лидером OSS для извлечения текста
  • Если вы не хотите нервничать с настройкой и хотите готовое решение, вы можете использовать RawText , но это не бесплатно.

Пример кода для RawText:

 $result = $rawText -> parse($your_file)