Как создать PDF из Blade View, используя библиотеку phpwkhtmltopdf?

Я делаю этот проект, где мне нужно создать отчет в формате PDF для квартальных транзакций. Я создал файлы блэйд-представления, и я могу сгенерировать PDF-файлы, используя библиотеку wkhtmltopdf с shell_exec(). Вот мой код для этого:

public function generate_report($quarter, $year){

    $url_home = 'http://localhost.welcomehome.com/testreport/';
    $temp_path = storage_path().'/temp/';
    $stmt = ' ';
    $stmt = 'wkhtmltopdf --margin-top 0 --margin-left 0 --margin-bottom 0 --margin-right 0 '.$url_home.'page1/'.$quarter.'/'.$year.' '.$temp_path.'page1.pdf ';
   //appending similar strings to $stmt
    shell_exec ($stmt);
   }

Теперь, в этом подходе мне нужно сделать http-вызов от моего сервера к себе, что теоретически не должно требоваться для этой проблемы. Я наткнулся на эту библиотеку phpwkhtmltopdf library

который является оберткой вокруг wkhtmltopdf. Я могу заставить его работать:

$pdf = new Pdf($url_home.'page1/'.$quarter.'/'.$year);
if (!$pdf->saveAs(.$temp_path.'page1.pdf')) {
    echo $pdf->getError();
}

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

 public function generate_report_v2($quarter,$year)
 {
    $pdf = new Pdf(view('research_reports/about',['quarter' => $quarter, 'year' => $year]););
    $temp_path = storage_path().'/temp/';
    if(!$pdf->saveAs($temp_path.'page.pdf'))
    {
        echo $pdf->getError();
    }
 }

Это дает мне ошибку:

You need to specify at least one input file, and exactly one output file Use - for stdin or stdout Name: wkhtmltopdf 0.12.3 (with patched qt) Synopsis: wkhtmltopdf [GLOBAL OPTION]... [OBJECT]... Document objects: wkhtmltopdf is able to put several objects into the output file, an object is either a single webpage, a cover webpage or a table of content. The objects are put into the output......and some more lines.

Пожалуйста, дайте мне знать, если кто-нибудь сгенерировал PDF-файлы, используя эту библиотеку с файлами блэйда. Кажется, я застрял здесь. Благодарю.

0 ответов

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