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

How to use Dompdf on Phalcon? Why do I get Permission Denied?

我试图让 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 更改为另一个以查看是否解决了问题,假设问题实际上是在引用 Phalcon 的应用程序文件夹。

我该如何解决这个问题?

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