mpdf не удается открыть изображение при запуске из консоли - PullRequest
0 голосов
/ 19 марта 2020

Я использую Symfony 4.3 У меня есть InvoiceService, который генерирует счет в PDF-файл. Для контента html я использую метод \Twig\Environment::render(). В шаблоне я использую функцию twig asset() для изображения. Когда я запускаю этот сервис из контроллера, счет генерируется без проблем, но когда я запускаю этот сервис из консольной команды, я получаю сообщение об ошибке:

Предупреждение: fopen (/ img / core-img / lo go .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 в белом квадрате вместо изображения. При запуске из контроллера изображение есть.

...