2016-02-07 2 views
0

У меня проблема с Cakepdf. Я могу сгенерировать .pdfs на свой сервер, но не могу их просматривать в своем браузере.Cakepdf generate PDF View

$CakePdf = new \CakePdf\Pdf\CakePdf(); 
$CakePdf->template('view', 'default'); 
$CakePdf->viewVars($this->viewVars); 
// Get the PDF string returned 
$pdf = $CakePdf->output(); 
echo $pdf; 

Просто дает мне зашифрованный код, как

%PDF-1.3 1 0 obj << /Type /Catalog /Outlines 2 0 R /Pages 3 0 R >> endobj 2 0 obj << /Type /Outlines /Count 0 >> endobj 3 0 obj << /Type /Pages /Kids [6 0 R 14 0 R ] /Count 2 /Resources << /ProcSet 4 0 R /Font << /F1 8 0 R /F2 9 0 R >> /XObject << /I1 12 0 R /I2 13 0 R /I3 18 0 R /I4 19 0 R >> >> /MediaBox [0.000 0.000 595.280 841.890] >> endobj 4 0 obj [/PDF /Text /ImageC ] endobj 5 0 obj << /Creator (DOMPDF) /CreationDate (D:20160208165451+00'00') /ModDate (D:20160208165451+00'00') >> endobj 6 0 obj << /Type /Page /Parent 3 0 R /Annots [ 10 0 R ] /Contents 7 0 R >> endobj 7 0 obj << /Filter /FlateDecode /Length 819 >> stream x�}Uˎ�8��+������`O�d$H�<��,�@K�M�5|L�|}���� �-QbwUuus�眶�����HuÚ��ڪc5/�8����t<���g9�Ɂ��p�A�Eԁ��ncx�����M�������"���HEnW]��k�.�Z�;~�������(}xo�4�& V[G^F�=�v�� C��Ġ&�{5^Hj}�ɝ���6� ����rp��U��bUQd�h䊞�u��iP�є� ڀe�'��T��'/��B��K'<@J#�Z94e�ʮLh V�u��%�B�rD\�.Q2�{���0��K3A&hv�rO2*o��О�b��Y5f�k*�`i�2�e�$AͪX׫�=��|'c5ʨR�Z�:QWg�y�s��ҭZ$2Y�,jM}װ��KhJVWUM*I'��W`�2_o����8���>JzPA��R�QR�er2(�»9(]ɪ�Y�)rN�!�����h)��)�bNz�:� I�:Igi� dv�����t_�`�'�C�����JX�c{{{���:�qK�m>�O�5Ku��6a�X%�?f�2V 2n �$� kڸ�o��y����_�Y� endstream endobj xref 0 20 0000000000 65535 f 0000000009 00000 n 0000000074 00000 n 0000000120 00000 n 0000000351 00000 n 0000000388 00000 n 0000000502 00000 n 0000000584 00000 n 0000001475 00000 n 0000001587 00000 n 0000001694 00000 n 0000001821 00000 n 0000001895 00000 n 0000002860 00000 n 0000003940 00000 n 0000004024 00000 n 0000004307 00000 n 0000004434 00000 n 0000004508 00000 n 0000005473 00000 n trailer << /Size 20 /Root 1 0 R /Info 5 0 R >> startxref 6553 %%EOF 

У меня default.ctp в Layout/PDF/default.ctp и мой взгляд на моем контроллере. Просто не создайте PDF в Интернете. Есть идеи?

+1

Почему бы вам не использовать плагин как показано в документах? – ndm

+0

Ну, это не помогло мне. Я делал все как в документах, но нет реального использования. Им нужен технический редактор или smth. Я не первый, у кого проблемы с документами ... – Isengo

+0

Ваша проблема очень вероятна в отношении кодирования. убедитесь, что вы правильно настроили все свои кодировки. – burzum

ответ

1

У вас есть только обычный исходный контент в формате PDF, и тот факт, что вы его видите, а не браузер, признающий его как документ PDF, заключается в том, что вы не отправляете правильный заголовок Content-Type.

Что я использую с помощью «», используя плагин, как показано в документах »в моем комментарии, это метод, который делает это для вас автоматически, используя вариант PDF + вариант обработчика запросов.

Readme > Render as PDF (including forced download) in the browser with PdfView (также проверить https://github.com/FriendsOfCake/CakePdf/issues/147)

Если вы не сделаете этого, то вам нужно справиться с этим самостоятельно. В действии контроллера, например, вы хотите использовать объект ответа, чтобы установить содержание тела и необходимый тип/заголовок, как

// ... 
$pdf = $CakePdf->output(); 

$this->response->body($pdf); 
$this->response->type('pdf'); 
return $this->response; 

Смотрите также Cookbook > Request & Response Objects > Response

Смежные вопросы