在cakephp中查看浏览器dompdf上的pdf

时间:2016-12-05 18:56:42

标签: php pdf cakephp dompdf

我已经创建了一个函数php来下载cakefp中的pdf但我这个下载工作就在我的浏览器中有IDM时,当我禁用IDM时我什么都没得到, 这是我的代码页: 控制器功能:

public function admin_pdf()
{
 $this->layout="pdf";
 $tpl_dash = array();
 $date = "";
 if(isset($_POST['month']) && isset($_POST['year'])){
  .....
 }
  $this->set('tpl_dash',$tpl_dash);
}

这是我的观点pdf文件:

<div class="container">
<div class="row">
    <div class="gap"></div>
    <div class="product-thumb product-thumb-horizontal">
        <h2 class="pull-left">Statistiques des Etablissements</h2>
        <table  class="table table-hover table-striped table-bordered" id="tpl-dashboard">
            <thead>
                <tr>
                    <th colspan="2" class="first-th"></th>
                    <th colspan="3" class="first-th">Winz</th>
                    <th colspan="3" class="first-th">Réservation</th>
                    <th colspan="3" class="first-th">Avis et Notes</th>
                </tr>
                <tr>
                    <th>Etablissement</th>
                    <th>Ville</th>   
                    <th>Nbre de Winz validés</th>
                    <th>Nbre de Winz consommés</th>
                    <th>Nbre de Winz non consommés</th>
                    <th>Nbre des Réservations validées</th>
                    <th>Nbre des Réservations consommées</th>
                    <th>Nbre des Réservations non consommées</th>
                    <th>Nbre Avis</th>
                    <th>Nbre Notes</th>
                    <th>Nbre Favoris</th>
                </tr>
            </thead>
            <tbody>
                <?php foreach ($tpl_dash as $key => $value): ?>
                    <tr>
                        <td><?php echo $value['nom'] ?></td>
                        <td><?php echo $value['ville'] ?></td>
                        <td><?php echo $value['avis'] ?></td>
                        <td><?php echo $value['notes'] ?></td>
                        <td><?php echo $value['favoris'] ?></td>
                        <td><?php echo $value['winzsValides'] ?></td>
                        <td><?php echo $value['winzsConsommes'] ?></td>
                        <td><?php echo $value['winzsNonConsommes'] ?></td>
                        <td><?php echo $value['reservationValidees'] ?></td>
                        <td><?php echo $value['reservationConsommees'] ?></td>
                        <td><?php echo $value['reservationNonConsommees'] ?></td>
                    </tr>
                <?php endforeach; ?>
            </tbody>
        </table>
    </div>
</div>

这是我的pdf lyaout:

require_once (APP . 'Plugin' . DS . 'dompdf' . DS . 'autoload.inc.php');

$dompdf = new Dompdf\Dompdf();
$dompdf->load_html($this->fetch('content'));
//$dompdf->loadHtml($this->fetch('content'););
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$dompdf->stream();

我试图制作此$dompdf->stream('my.pdf',array('Attachment'=>0));而我试图制作Attachment,但两者仍然不起作用

1 个答案:

答案 0 :(得分:1)

我解决了这个问题,在第一个脚本中,我正在使用ajax下载pdf,但它只与IDM一起使用。

function printPdf () {
    var m = document.getElementById("month");
    var y = document.getElementById("year");
    var month = m.options[m.selectedIndex].value;
    var year = y.options[y.selectedIndex].value;
    var monthText = m.options[m.selectedIndex].text;
    var  dataString = 'month='+month+'&year='+year+'&monthText='+monthText;
    $.ajax({
        type: "POST",
        url: "/admin/pages/pdf",
        data: dataString,
        cache: false,
        success: function(result){

        }
    });  
}

如果我的浏览器中没有IDM我无法下载它,但现在我删除了printPdf()函数,我将pdf buttom生成器放入表单,现在是PDF已在浏览器中加载