无法读取通过chrome中的dompdf生成的pdf

Wer*_*eta 1 php pdf google-chrome dompdf

我只是测试dompdf.并且发现我生成的东西不能被铬染成红色.试图用sumatra 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");

}
?>
Run Code Online (Sandbox Code Playgroud)

小智 5

问题可能在于默认情况下dompdf将内容转储为附件,从而强制下载.为了允许浏览器内联查看,必须通过为stream方法设置其他参数来告知它.

$dompdf->stream("my_pdf.pdf", array("Attachment" => 0));
Run Code Online (Sandbox Code Playgroud)

如果这没有意义,请尝试在生成(并在磁盘上写入)所需的html输出后清理输出缓冲区,而不将其放在屏幕上.对请求/响应执行标头调试,并查看其中是否有任何空格或空格.如果这样做,客户端将无法读取标题,您可能无法看到生成的PDF.