我只是测试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");
}
?>
答案 0 :(得分:5)
问题可能在于,默认情况下,dompdf会将内容转储为附件,从而强制下载。为了允许浏览器内联查看,必须通过为stream方法设置其他参数来告知浏览器。
$dompdf->stream("my_pdf.pdf", array("Attachment" => 0));
如果没有意义,请尝试在生成(并在磁盘上写入)所需的html输出后清理输出缓冲区,而不将其放在屏幕上。对请求/响应执行标头调试,并查看其中是否有任何空格或空格。如果这样做,客户端将无法读取标题,您可能无法看到生成的PDF。
答案 1 :(得分:2)
PDF可能已正确呈现,但根据您的服务器配置,某些非PDF内容可能已包含在PDF源中。某些PDF阅读器比其他阅读器更宽松,并且会丢弃非PDF内容。检查这一点的最简单方法是在文本编辑器中打开PDF并查找HTML文本字符串等内容。
如果这不是问题,那么查看PDF本身就会有所帮助。
答案 2 :(得分:0)
Chrome pdf查看器很糟糕,请留给专家。如果没有,请安装Acrobat Reader。在Chrome地址栏中输入about:plugins并单击以禁用Chrome pdf viewer。然后单击以启用Acrobat Reader ---在Chrome中查看pdf将起作用!