Как загрузить html-файл в cakephp с помощью dompdf

Я использую dompdf с cakephp 3.6 для создания отпечатков из HTML в PDF

У меня есть имя функции контрольная работа внутри контроллера драйвера, и я хочу загрузить файл ctp, который создается внутри src \ Template \ DriverDetails, а имя файла - testpdf.ctp

Можете ли вы, пожалуйста, помочь мне подсказать, как передать полный файл.

Ниже мой код

public function test()  {
            $html = file_get_contents("testpdf.ctp");            
            $dompdf = new Dompdf();
            $dompdf->loadHtml($html);
            $dompdf->setPaper('A4', 'portrait');
            $dompdf->render();
            $dompdf->stream("invoice.pdf", array("Attachment" =>0));
            exit(0);
        }

SRC \ Шаблон \ DriverDetails \ testpdf.ctp

<html>
    <body>
        <table>
            <tr><td align = "center"><?php echo $id; ?></td></tr>
            <tr><td align = "center">Demo Data</td></tr>
        </table>
    </body>
</html>
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
459
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете попробовать это. Поместите этот метод внутри контроллера. $ view_output - это переменная, в которой хранится содержимое файла ctp. "elements" - это файл ctp для рендеринга. В вашем случае это testpdf

/* Make sure the controller doesn't auto render. */
 $this->autoRender = false;

/* Set up new view that won't enter the ClassRegistry */

$view = new View($this, false);
$view->set('text', 'Hello World');
$view->viewPath = 'elements';

/* Grab output into variable without */
$view_output = $view->render('box');

Вот пример хранения html элемента с именем «box» с переменной «text» без отображения или вывода представления

Вот пример

Я не понял, где указать мое имя файла и что делать с этим кодом ... не могли бы вы объяснить пошаговые инструкции ..

Rajnikant Bajpai 11.07.2018 12:11

Отредактировал свой ответ. Пожалуйста, проверьте.

Web Artisan 11.07.2018 12:24
Ответ принят как подходящий

Вы можете так попробовать.

public function test()
{
    $data = "This can be accessible in view file";
    $builder = $this->viewBuilder();
    $builder->autoLayout(false);

    // set your template path [don't use .ctp]
    $builder->template('Users/add');

    //Pass data into view file
    $view = $builder->build(['data' => $data]);

    //Render view file content and store into variable
    $viewContent = $view->render();
    var_dump($viewContent);
}

Другие вопросы по теме