Каков наилучший способ отображения форматированного Word Doc в HTML / PHP?
Вот код, который у меня есть, но он не форматирует его:
$word = new COM("word.application") or die ("Could not initialise MS Word object."); $word->Documents->Open(realpath("ACME.doc")); // Extract content. $content = (string) $word->ActiveDocument->Content; echo $content; $word->ActiveDocument->Close(false); $word->Quit(); $word = null; unset($word);
Я ничего не знаю о COM, но, судя по документам Word API на MSDN, похоже, что ваш лучший wsFormatFilteredHTML
будет использовать Document.SaveAs
для сохранения как wsFormatFilteredHTML
во временный файл, а затем для этого HTML-кода для пользователя. Не забудьте выбрать отфильтрованный HTML, иначе вы будете получать суп-суп-суп когда-либо .
Я понял это. Проверьте решение для чтения Word Doc и форматирования его в HTML:
$filename = "ACME.doc"; $word = new COM("word.application") or die ("Could not initialise MS Word object."); $word->Documents->Open(realpath($filename)); $new_filename = substr($filename,0,-4) . ".html"; // the '2' parameter specifies saving in txt format // the '6' parameter specifies saving in rtf format // the '8' parameter specifies saving in html format $word->Documents[1]->SaveAs("C:/a1/projects/---full path--- /".$new_filename,8); $word->Documents[1]->Close(false); $word->Quit(); //$word->Release(); $word = NULL; unset($word); $fh = fopen($new_filename, 'r'); $contents = fread($fh, filesize($new_filename)); echo $contents; fclose($fh); //unlink($new_filename);
с$filename = "ACME.doc"; $word = new COM("word.application") or die ("Could not initialise MS Word object."); $word->Documents->Open(realpath($filename)); $new_filename = substr($filename,0,-4) . ".html"; // the '2' parameter specifies saving in txt format // the '6' parameter specifies saving in rtf format // the '8' parameter specifies saving in html format $word->Documents[1]->SaveAs("C:/a1/projects/---full path--- /".$new_filename,8); $word->Documents[1]->Close(false); $word->Quit(); //$word->Release(); $word = NULL; unset($word); $fh = fopen($new_filename, 'r'); $contents = fread($fh, filesize($new_filename)); echo $contents; fclose($fh); //unlink($new_filename);
Пара вещей … Имея «charset = UTF-8» в верхней части моей страницы PHP, добавлялось множество алмазов с вопросительными знаками … Я удалил это, и он отлично работает.
Кроме того, у SaveAs должен быть полный путь, по крайней мере локально, я добавил, чтобы он работал.
В очередной раз благодарим за помощь.
Мне нужен правильный XHTML, который Office не даст вам (я этого не понимаю). Если вам нужно, вы можете использовать такие инструменты, как JTidy или TagSoup, чтобы исправить HTML. Ср http://slideguitarist.blogspot.com/2011/03/exporting-word-documents-to-html.html