如何在Phalcon上使用Dompdf?为什么我会拒绝权限?

时间:2016-03-12 17:09:45

标签: phalcon dompdf permission-denied chroot

我试图让Dompdf在Phalcon上工作,但我在使用$ dompdf-> load_html_file($ html)命令时遇到错误,此时我就是这样做的。我收到以下消息:The file could not be found under the directory specified by Options::chroot

我的代码如下:

<?php
require_once $config->application->dompdfDir.'/autoload.inc.php';
use Dompdf\Dompdf;
class IndexController extends ControllerBase
{

public function indexAction()
{

}

public function pdfAction()
{
    // set the default timezone to use

    date_default_timezone_set('America/El_Salvador');
    $fechaHoy = date('d/m/Y'); // H:i:s');
    $miembro = "Some Name";
    $monto = "20.00";
    $meses = "Enero 2016, Febrero 2016";
    $firma = "Other Name";

    $html = 
    '<table border="0" align="center">
    <tbody>
    <tr>
            <td align="left">Imagen</td>
            <td colspan="2" align="center">TESORERIA DE OCDS<br>STELLA MARIS</td>
            <td align="right">Fecha: '.$fechaHoy.'</td>
    </tr>
    <tr>
            <td colspan="4">Recibi de '.$miembro.' la cantidad de $'.$monto.'<br>
            en concepto de cuota mensual de los siguientes meses: <br>'.$meses.'</td>
    </tr>
    <tr>
            <td colspan="2"></td><td colspan="2">F. '.$firma.'</td>
    </tr>
    </tbody>
    </table>';

    $html = '<html>
    <style type="text/css">
    <!--
        @page {margin: 10px }
    -->
    </style><body>'.$html.'</body></html>';

     $dompdf = new DomPdf();
     $newChroot = APP_PATH . '\\public\\temp';
     //echo $newChroot;
     $dompdf->set_option('chroot', $newChroot);
     echo $dompdf->get_option('chroot');
     $dompdf->load_html_file($html);

     // (Optional) Setup the paper size and orientation
     $dompdf->setPaper(array(0,0,132,408), 'landscape');

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

     // Get the generated PDF file contents
     $pdf = $dompdf->output();

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

}

正如你所看到的,我甚至已经将chroot更改为另一个chroot,看看是否解决了这个问题,假设问题实际上引用了Phalcon的app文件夹。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

由于您在脚本中生成HTML,因此应使用$dompdf->load_html($html)。您可以使用load_html_file加载实际文件(在本地文件系统或远程系统上)。