如何在 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
加载实际文件(在本地文件系统或远程系统上)。
我试图让 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
加载实际文件(在本地文件系统或远程系统上)。