1

我只是在测试 dompdf。并发现我正在生成的内容不能被 chrome 变成红色。试图用sumatra pdf阅读器打开它,它打开了。尝试从我的 chrome 电子书中打开一些随机的 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 查看器太糟糕了,交给专家吧。如果您没有 Acrobat Reader,请安装它。在 Chrome 地址栏中输入 about:plugins 并单击以禁用 Chrome pdf 查看器。然后点击启用 Acrobat Reader---在 Chrome 中查看 pdf 就可以了!

于 2011-10-10T19:37:29.550 回答