Symfony 4 - Использование VichUploader с Dompdf? - PullRequest
1 голос
/ 16 октября 2019

Я использую Dompdf в моем проекте Symfony 4 для создания PDF. Для рендеринга PDF, я делаю рендер на ветке файла. И в этом файле ветки мне нужно отобразить изображения, которые я ранее загружал через VichUploaderBundle.

Итак, в моем контроллере я включил эту опцию:

    $pdfOptions->setIsRemoteEnabled(true);

И в моей ветке япроверил абсолютный путь моего изображения:

   {{ dump(absolute_url(vich_uploader_asset(parametresAdmin, 'logoFile'))) }}

И у меня есть это:

"http://127.0.0.1:8000/admin/logo/avatar2.jpg"

Эта ссылка заставляет меня чувствоватьхорошо с моим изображением.

Теперь, если я попытаюсь вставить его в свой PDF-файл следующим образом:

<img style="width:90px;" src="{{absolute_url(vich_uploader_asset(parametresAdmin, 'logoFile'))}}">

И что я перезапущу URL, чтобы сгенерировать PDF-файл, он превратится в цикли перестаньте говорить, что время ожидания превышено.

Так, как я могу вставить свою ссылку для создания моего pdf?

Мой контроллер:

/**
     * Générer un PDF
     * @Route("/absence/pdf", name="absence_pdf")
     *
     * @return void
     */
    public function createPDF(ParametresAdminRepository $repoParametres)
    {
        $parametresAdmin = $repoParametres->findAll();

        if (isset($parametresAdmin[0])) {
            $parametresAdmin = $parametresAdmin[0];
        } else {
            $parametresAdmin = new ParametresAdmin();
        }
        // Configure Dompdf according to your needs
        $pdfOptions = new Options();
        $pdfOptions->setIsRemoteEnabled(true);



        // Instantiate Dompdf with our options
        $dompdf = new Dompdf();
        $dompdf->setOptions($pdfOptions);
        // $dompdf->set_option('isHtml5ParserEnabled', true);

        // Retrieve the HTML generated in our twig file
        $html = $this->renderView('absence/pdf.html.twig', [
            'title' => "Welcome to our PDF Test",
            'parametresAdmin' => $parametresAdmin
        ]);

        // Load HTML to Dompdf
        $dompdf->loadHtml($html);

        // (Optional) Setup the paper size and orientation 'portrait' or 'portrait'
        $dompdf->setPaper('A4', 'portrait');

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

        // Output the generated PDF to Browser (inline view)
        $dompdf->stream("mypdf.pdf", [
            "Attachment" => false,
        ]);
    }

Моя веточка:

<code><html>
    <head>
        <meta charset="UTF-8">
        <title>Title of the PDF</title>
    </head>
    <body>
        <h4>{{ title }}</h4>
        <pre>
            {{ dump(absolute_url(vich_uploader_asset(parametresAdmin, 'logoFile'))) }}
        

Lorem Ipsum

{% if parameters_Admin.logoName%}{% endif%}
...