symfony - 从控制台命令运行时,mpdf 无法打开图像
问题描述
我正在使用 Symfony 4.3
我有一个InvoiceService
,它将发票生成为 pdf 文件。
对于 html 内容,我使用\Twig\Environment::render()
方法。在模板中,我asset()
对图像使用了 twig 函数。
当我从控制器运行此服务时,发票生成没有问题,但是当我从控制台命令运行此服务时,我收到错误:
警告:fopen(/img/core-img/logo.png):无法打开流:没有这样的文件或目录
当不从控制器运行时,是否应该以不同的方式使用 Twig 环境?
这是负责的代码:
$html = $this->twig->render(
'invoice.html.twig',
array(
'reservation' => $reservation,
)
);
$waterMarkText = ($this->kernel->getEnvironment() !== 'production') ? $this->translator->trans('invoice.test_document') : $this->translator->trans('invoice.paid');
$this->mpdf->SetProtection(array('print'));
$this->mpdf->SetTitle("Apartamenty Grodowa 2 - faktura");
$this->mpdf->SetAuthor("Gall");
$this->mpdf->SetWatermarkText($waterMarkText);
$this->mpdf->showWatermarkText = true;
$this->mpdf->watermark_font = 'DejaVuSansCondensed';
$this->mpdf->watermarkTextAlpha = 0.1;
$this->mpdf->SetDisplayMode('fullpage');
$this->mpdf->WriteHTML($html);
$this->mpdf->Output($invoice->getFilePath(),
Destination::FILE);
通过依赖注入$this->twig
并被
传递\Twig\Environment
$this->mpdf
new Mpdf([
'margin_left' => 20,
'margin_right' => 15,
'margin_top' => 48,
'margin_bottom' => 25,
'margin_header' => 10,
'margin_footer' => 10
]);
我试图通过asset('path/to/image')
和包含图像absolute_url(asset('path/to/image'))
,两者都导致白色正方形中的红色 X 代替图像。从控制器运行时,图像就在那里。
解决方案
推荐阅读
- css - css文本动画没有停止
- javascript - java将字符串Web请求传递给非字符串@RequestParam
- jupyter-notebook - Jupyter Notebook 不同的显示方式
- vue.js - 无法导入 vue-cli-service 构建的 Vue 组件
- html - 如何修复 ReferenceError:X 未定义
- react-native - 使用本机反应设置包含滚动视图的视图高度
- php - 如何将 WordPress 页面拆分为多个 URL?
- ios - 如何使用swift在collectionview中实现显示/隐藏部分
- sas - 如何解决此错误:“物理文件不存在”
- google-maps - 谷歌地图仅在网站上显示为第二