Как вы отображаете отформатированный Word Doc в HTML / PHP? - PullRequest
3 голосов
/ 17 марта 2011

Как лучше всего отобразить отформатированный 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);

Ответы [ 3 ]

4 голосов
/ 17 марта 2011

Я понял это.Проверьте решение для чтения 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);

Несколько вещей ... Наличие "charset = UTF-8" в верхней части моей страницы PHP добавляло кучубриллианты с вопросительными знаками ... Я удалил это, и оно отлично работает.

Кроме того, SaveAs должен иметь полный путь, по крайней мере локально, я добавил это, чтобы заставить его работать.

В очередной раз благодарим за помощь.

3 голосов
/ 17 марта 2011

Я ничего не знаю о COM, но просматривая документы Word API на MSDN, похоже, ваша лучшая ставка будет использовать Document.SaveAs для сохранения как wsFormatFilteredHTML во временный файл, затем предоставляя этот HTML-код пользователю. Обязательно выберите отфильтрованный HTML, иначе вы получите самый вкусный теговый суп из когда-либо .

0 голосов
/ 28 марта 2011

Мне нужен был правильный XHTML, который Office не даст вам (я понимаю, , а не , я понимаю). Вы можете использовать инструменты, такие как JTidy или TagSoup, чтобы исправить HTML, если вам нужно. Ср http://slideguitarist.blogspot.com/2011/03/exporting-word-documents-to-html.html

...