1

私はちょうどdompdfをテストしています。そして、私が生成しているものはクロムによって赤くできないことがわかりました。スマトラpdfリーダーで開こうとしたところ、開きました。私の電子ブックからランダムなPDFファイルをChromeで開いてみましたが、赤くなりました。クロムがそれを読み取ることができなかった私のコードに何か問題がありますか:

<?php
require_once("dompdf/dompdf_config.inc.php");

$dompdf = new DOMPDF();

$d_r = array(array('name'=>'ab', 'course'=>'bsit'), array('name'=>'yoh', 'course'=>'bscs'));

ob_start();
put_table($d_r);
file_put_contents('sample.html', ob_get_contents());
generate_pdf('sample.html');

function put_table($raw_data){
?>
<table border="1">
    <tr>
    <th>Name</th>
    <th>Course</th>
    </tr>

<?php foreach($raw_data as $data){ ?>   
    <tr>
    <td><?php echo $data['name']; ?></td>
    <td><?php echo $data['course']; ?></td>
    </tr>
<?php } ?>
</table>


    <?php
}


function generate_pdf($filename){
    global $dompdf;

    $dompdf->load_html(file_get_contents($filename));
    $dompdf->render();
    $dompdf->stream($filename. ".pdf");

}
?>
4

3 に答える 3

6

問題は、デフォルトで dompdf がコンテンツを添付ファイルとしてダンプし、ダウンロードを強制するという事実にある可能性があります。ブラウザーがインラインで表示できるようにするには、ストリーム メソッドに追加のパラメーターを設定して、表示しないように指示する必要があります。

$dompdf->stream("my_pdf.pdf", array("Attachment" => 0));

それが意味をなさない場合は、目的の html 出力を生成 (およびディスクに書き込み) した後、画面に表示せずに、出力バッファーをクリーンアップしてみてください。リクエスト/レスポンスでヘッダー デバッグを実行し、空白やスペースが含まれていないかどうかを確認します。その場合、クライアントはヘッダーを読み取らず、結果の PDF を表示できない場合があります。

于 2011-05-11T12:39:21.040 に答える
2

PDF は正しくレンダリングされている可能性がありますが、サーバーの構成によっては、PDF 以外のコンテンツが PDF ソースに含まれている場合があります。一部の PDF リーダーは他のものより寛容で、PDF 以外のコンテンツを破棄します。これを確認する最も簡単な方法は、PDF をテキスト エディターで開き、HTML テキストの文字列などを探すことです。

それが問題でない場合は、PDF 自体を表示すると役立ちます。

于 2011-05-12T18:19:00.360 に答える
0

Chrome pdf ビューアはひどいので、専門家に任せてください。お持ちでない場合は、アクロバットリーダーをインストールしてください。Chrome アドレス バーに about:plugins と入力し、クリックして Chrome pdf ビューアーを無効にします。次に、クリックして Acrobat Reader を有効にします。Chrome で PDF を表示できます。

于 2011-10-10T19:37:29.550 に答える