Символ Юникода Laravel 5 Fpdi

Мне нужна помощь для моего проекта laravel. Я использую Fpdi для импорта PDF, но когда я отображаю его на локальном хосте, у меня есть только такие символы юникода:

%PDF-1.4 3 0 obj ‹> endobj 4 0 obj ‹> stream x�E�K�0D�9�,a�:i�d��H�|�4�ⓠr|�!y�aƗ! C*�r�y���{�98
L>|a�)w endstream endobj 1 0 obj ‹> endobj 5 0 obj ‹> stream x�]R�n�0�

Вот мой код:

use setasign\ Fpdi;

// initiate FPDI
$pdf = new Fpdi\ Fpdi();
// add a page
$pdf - > AddPage();
// set the source file
$pdf - > setSourceFile(storage_path("justificatif.pdf"));
// import page 1
$tplIdx = $pdf - > importPage(1);
// use the imported page and place it at point 10,10 with a width of 100 mm
$pdf - > useImportedPage($tplIdx, 10, 10, 100);

// now write some text above the imported page
$pdf - > SetFont('Helvetica');
$pdf - > SetTextColor(255, 0, 0);
$pdf - > SetXY(30, 30);
$pdf - > Write(0, 'This is just a simple text');

$pdf - > Output();

Мой маршрут:

Route::get('/testpdf', function() {
    return view('layouts/essai'); 
});

Почему это происходит и как это исправить?


person Gihad Bayoudh    schedule 15.03.2018    source источник


Ответы (1)


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

...
return response($pdf->Output('S'))->withHeaders(['Content-Type' => 'application/pdf']);

Исходные документы https://laravel.com/docs/5.6/responses#attaching-headers-to-responses

person Sérgio Reis    schedule 15.03.2018
comment
Содержимое ответа должно быть строкой или объектом, реализующим __toString(), данный объект. - person Gihad Bayoudh; 15.03.2018
comment
никак иначе это не исправить? возможно, мой PDF-документ не адаптирован - person Gihad Bayoudh; 15.03.2018
comment
Хм, странно, у меня есть рабочий пример, как я ответил... попробуй это return response($pdf->Output())->withHeaders(['Content-Type' => 'application/pdf']); - person Sérgio Reis; 16.03.2018
comment
Обновите его до return response($pdf->Output('S'))->withHeaders(['Content-Type' => 'application/pdf']);, чтобы получить PDF в виде строки. - person Jan Slabon; 16.03.2018