1

私は以下のようなhtmlコードを持っています:

file.html

<body>
    <h1>TEST</h1>
    <p>this is test</p>
    <table>
        <tr>
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td>
        </tr>
        <tr>
            <td>5</td>
            <td><img src="../../../wamp/www/html2doc/SGEPP.jpg"></td>
        </tr>
    </table>

html2doc.php

<?php
        $handle = fopen("doc2html.html","r");
        $contents = '';
                while (!feof($handle)) {
                $contents .= fread($handle, 8192);
                }   
                header("Content-type: application/vnd.ms-word");
                header("Content-Disposition: attachment;Filename=html2word.doc");
                echo $contents;
?>

問題点:

変換すると、html2word.doc が得られますが、html ファイルからすべてのテキストしか取得できません。 .どうすればこれを修正できますか?誰か助けてください,ありがとう.

4

4 に答える 4

3

私はこのスクリプト (html2doc) を 1 週間前に扱いました。*.docそのため、ファイル内に画像を保存しないことに注意してください。サーバーへのリンクのようにのみ挿入されます。解決策は、srcタグに絶対パスを記述することです。U は HTML ページを 1 行ずつ読みます。したがって、各行で img タグを見つけて、src を新しいものに置き換えてみてください。

$handle = fopen("html2doc.html","r");
$contents = '';
while (!feof($handle)) {
    $str = fread($handle, 8192);
    $str = str_replace('src="../../../','src="http://'.$_SERVER['SERVER_NAME'].'/path/to/imgages/',$str);
    $contents .= $str;
}   
header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=html2word.doc");
echo $contents;



// Output:
<body>
<h1>TEST</h1>
<p>this is test</p>
<table>
    <tr>
        <td>1</td>
        <td>2</td>
    </tr>
    <tr>
        <td>3</td>
        <td>4</td>
    </tr>
    <tr>
        <td>5</td>
        <td><img src="http://www.temp.com/path/to/imgages/wamp/www/html2doc/SGEPP.jpg" /></td>
    </tr>
</table>

そのため、画像にはパスがあり、MS Word が適切に読み取って画像を表示できます。ただし、覚えておいてください:
1. 画像を表示するにはインターネット接続が必要です
2. 画像を削除する (またはサーバーを利用できない) と、生成されたすべてのドキュメントで画像が使用できなくなります
3. 含まれる doc ファイルに画像がありません

于 2012-09-07T09:37:24.570 に答える
0

.jpgの後に、または.png次のように ランダムなクエリを追加してみてくださいexample.com/photo.jpg?ts=12345

于 2016-06-20T11:18:44.483 に答える
0

通常、header() 関数は特定のアプリケーションをリダイレクトして強制的にダウンロードするだけですが、画像を含む Word ファイルは正しく機能せず、永続的なドキュメント ファイルではなくソースから読み取るだけです...

于 2014-01-15T09:41:38.313 に答える