Не удается прочитать PDF, сгенерированный через dompdf в Chrome - PullRequest
1 голос
/ 11 мая 2011

Я просто тестирую dompdf. И обнаружил, что то, что я генерирую, не может быть красным от хрома. Пытался открыть его с помощью читателя PDF Суматра, и он открыл. Попытался открыть какой-то случайный файл PDF из моих книг в Chrome, и он его раскрасил. Что-то не так с моим кодом, что 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");

}
?>

Ответы [ 3 ]

5 голосов
/ 11 мая 2011

Проблема может заключаться в том, что по умолчанию dompdf выгружает содержимое в виде вложения, что вызывает загрузку. Чтобы браузер мог просматривать его в строке, нужно запретить его, задав дополнительный параметр для метода stream.

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

Если это не имеет смысла, попробуйте очистить буфер вывода после генерации (и записи на диск) желаемого вывода html, не выводя его на экран. Выполните отладку заголовка запроса / ответа и посмотрите, есть ли в нем пробелы или пробелы. Если вы это сделаете, заголовки не будут прочитаны клиентом, и вы не сможете увидеть полученный PDF.

2 голосов
/ 12 мая 2011

Возможно, файл PDF отображался правильно, но, в зависимости от конфигурации вашего сервера, некоторые материалы, отличные от PDF, могли быть включены в источник PDF.Некоторые программы чтения PDF-файлов более снисходительны, чем другие, и будут отбрасывать содержимое, отличное от PDF.Самый простой способ проверить это - открыть свой PDF-файл в текстовом редакторе и искать такие вещи, как строки HTML-текста.

Если это не проблема, это поможет просмотреть сам PDF.

0 голосов
/ 10 октября 2011

Chrome pdf viewer ужасен, оставьте это экспертам. Установите Acrobat Reader, если у вас его нет. В адресной строке Chrome введите about: plugins и нажмите, чтобы отключить Chrome pdf viewer. Затем нажмите, чтобы включить Acrobat Reader --- просмотр PDF в Chrome будет работать!

...