3

HTML/PHP で書式設定された Word Doc を表示する最良の方法は何ですか?

ここに私が現在持っているコードがありますが、フォーマットされていません:

$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);
4

3 に答える 3

4

私はこれを理解しました。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);

いくつかのこと...PHPページの上部に「charset = UTF-8」があると、疑問符が付いた一連のひし形が追加されました...それを削除したところ、完全に機能しました。

また、SaveAs には、少なくともローカルではフル パスが必要です。それを機能させるために追加しました。

ご協力いただきありがとうございます。

于 2011-03-17T04:50:46.520 に答える
3

COMについては何も知りませんが、MSDNのWord APIドキュメントを調べてみると、一時ファイルDocument.SaveAsとして保存し、そのHTMLをユーザーに提供するのが最善の策のようです。フィルタリングされwsFormatFilteredHTMLた HTML を必ず選択してください。そうしないと、これまでで最もスープの多いタグ スープが得られます

于 2011-03-17T02:53:35.710 に答える
0

I needed correct XHTML, which Office won't give you (I do not understand that). You can use tools such as JTidy or TagSoup to fix the HTML, if you need to. Cf. http://slideguitarist.blogspot.com/2011/03/exporting-word-documents-to-html.html

于 2011-03-28T12:18:52.320 に答える