0

今日、私は PHP ベースの PDF ジェネレーターの実験を始めました。TCPDF を試してみましたが、少し遅いように見えますが、ほとんどの場合問題なく動作します。しかし、Internet Explorer 8 で PDF を生成する PHP ファイルをロードすると、何行もの奇妙な文字が表示されます。ただし、Chrome はそれを PDF として認識します。

ページ出力を PDF ファイルとして解釈する必要があることを IE に伝えるために、特別な MIME タイプを設定する必要があると想定しています。はいの場合、どうすればこれを行うことができますか?

4

5 に答える 5

2

私もこの問題を抱えていましたが、それを機能させるために私がしたことは私が追加したことです

 exit();

pdf出力の最後に。

于 2010-08-03T05:33:26.470 に答える
2

「application/pdf」または「application/octet-stream」の MIME タイプを配置すると役立つ場合があります。「application/octet-stream」はファイルのダウンロードを強制し、ブラウザで開けなくなる可能性があることに注意してください。

あなたが疑問に思っている場合は、次のようにすることができます:

header('Content-type: application/octet-stream');
于 2010-06-27T15:44:51.200 に答える
0

@Pieter:tcpdf(fpdiを使用)を使用して同じ問題が発生し、ajax呼び出しを使用してpdfを生成していたページをロードしていました。代わりにwindow.locationを使用してページをロードするようにJavaScriptを変更しましたが、問題は解消され、パフォーマンスは大幅に向上しました。ドキュメントヘッダーが問題を引き起こしているという考えでは、他の2つのポスターは正しいと思います。私の場合、ajax呼び出しが原因で、ヘッダーがドキュメント全体に適用されておらず、問題が発生していました。お役に立てれば。

于 2010-07-06T04:51:58.130 に答える
0

動的に生成されたコンテンツでは、IE を別の方法で処理する必要があります。この記事を見て、

http://support.microsoft.com/default.aspx?scid=kb;en-us;293792

私のコードでは、これを行います。

    if(isset($_SERVER['HTTP_USER_AGENT']) AND ($_SERVER['HTTP_USER_AGENT']=='contype')) {
            header('Content-Type: application/pdf');
            exit;
    }

この問題は、ページが実際にこのロジックなしで PDF 全体を複数回送信するため、言及した速度の低下を説明する場合もあります。

于 2010-06-27T17:15:29.043 に答える
0

これも問題であることがわかりました。私にとって、これはすべてコードにかかっていました。

if (php_sapi_name( != 'cli') {

tcpdf.php ファイルの 7249 行目。
この「if」ステートメント(および関連する「}」)にコメントしましたが、他のブラウザーとie8ですべて正常に動作しますこれが役立つことを願っています

于 2010-07-30T11:45:53.670 に答える