Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Выгрузка в PDF с помощью MPDF
http://forum.kohanaframework.su/viewtopic.php?f=32&t=325
Страница 1 из 2

Автор:  happyend [ 19 авг 2012, 17:54 ]
Заголовок сообщения:  Выгрузка в PDF с помощью MPDF

Доброго дня!
Совсем недавно реализовал выгрузку в PDF с помощью замечательной библиотеки mPDF. Это был не kohana, и структура создания файла была следующей:
Код:
require_once ('mpdf/mpdf.php'); # подцепляем главный файл mPDF
$mpdf = new mPDF('utf-8', 'A4', '8', '', 10, 10, 7, 7, 10, 10); #задаем формат, отступы и.т.д.
$mpdf->charset_in = 'utf8'; #не забываем про русский
$stylesheet = file_get_contents('css/style.css'); # подцепляем стили
$mpdf->WriteHTML($stylesheet,1);
$html = 'Это текст, который отобразиться в PDF-файле';
$mpdf->list_indent_first_level = 0;
$mpdf->WriteHTML($html,2,TRUE, TRUE); /*формируем pdf*/
$mpdf->Output('actDoer.pdf', 'I');


На кохане я решил сделать след. образом:
в экшн контроллера я вставил след:
Код:
public function action_print_act() {
        require Kohana::find_file('views', 'plugin/mpdf/mpdf');
        $mpdf = new mPDF('utf-8', 'A4', '8', '', 10, 10, 7, 7, 10, 10); /*задаем формат, отступы и.т.д.*/
        $mpdf->charset_in = 'utf8'; /*не забываем про русский*/
        $stylesheet = Kohana::find_file('views', 'css/style.css');
        $mpdf->WriteHTML($stylesheet,1);
        $html = 'Это текст, который отобразиться в PDF-файле';
        $mpdf->list_indent_first_level = 0;
        $mpdf->WriteHTML($html,2,TRUE, TRUE); /*формируем pdf*/
        $mpdf->Output('actDoer.pdf', 'I');
}


В ответ мне приходит ответ:
Цитата:
%PDF-1.4
%����
3 0 obj
<</Type /Page
/Parent 1 0 R
/MediaBox [0 0 595.280 841.890]
/TrimBox [0.000 0.000 595.280 841.890]
/Resources 2 0 R
/Group << /Type /Group /S /Transparency /CS /DeviceRGB >>
/Contents 4 0 R>>
endobj
4 0 obj
<</Filter /FlateDecode /Length 105>>
stream
x�S0R��2�353W(�r
Q�w3T��300PISp
�2�ӹ
 ,�"# =c3 Cc=K#s��
C#c�T�jW�hs��4��+:V�@!� ��'
endstream
и т.д.


Не могу понять в чем дело, гугль по этому поводу молчит((

Автор:  Sergey [ 19 авг 2012, 21:20 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

А что тут понимать?
Заголовки передаваемые серверу в данный момент покажите

Автор:  happyend [ 20 авг 2012, 06:58 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

Код:
[b]Заголовки ответа[/b]
Cache-Control   public, must-revalidate, max-age=0
Connection   Keep-Alive
Content-Disposition   inline; filename="actDoer.pdf"
Content-Encoding   gzip
Content-Length   13201
Content-Type   text/html; charset=utf-8
Date   Mon, 20 Aug 2012 01:51:49 GMT
Expires   Sat, 26 Jul 1997 05:00:00 GMT
Keep-Alive   timeout=5, max=96
Last-Modified   Mon, 20 Aug 2012 01:51:50 GMT
Pragma   public
Server   Apache/2.2.22 (Ubuntu)
Vary   Accept-Encoding
X-Powered-By   PHP/5.3.10-1ubuntu3.2


Код:
[b]Заголовки запроса[/b]
Accept   */*
Accept-Encoding   gzip, deflate
Accept-Language   ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Connection   keep-alive
Content-Length   8
Content-Type   application/x-www-form-urlencoded; charset=UTF-8
Cookie   session=hulguene3o0n8r2lp5emaljak2
Host   localhost:5060
Referer   http://localhost:5060/page
User-Agent   Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1
X-Requested-With   XMLHttpRequest

Автор:  Sergey [ 20 авг 2012, 13:40 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

Ну. Всё ещё не понятно?

Автор:  happyend [ 20 авг 2012, 14:14 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

Нет к сожалению(
Направь меня в верном направлении, если не затруднит...

Автор:  Sergey [ 20 авг 2012, 15:07 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

$this->request->headers('Content-Type', 'application/pdf');

http://kohanaframework.org/3.2/guide/ap ... st#headers

Автор:  happyend [ 20 авг 2012, 21:51 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

Посмотрел документацию... сделал как ты сказал. Получил в ответе:
Заголовки ответа
Код:
Cache-Control   public, must-revalidate, max-age=0
Connection   Keep-Alive
Content-Disposition   inline; filename="actDoer.pdf"
Content-Type   application/pdf
Date   Mon, 20 Aug 2012 16:45:25 GMT
Expires   Sat, 26 Jul 1997 05:00:00 GMT
Keep-Alive   timeout=5, max=97
Last-Modified   Mon, 20 Aug 2012 16:45:25 GMT
Pragma   public
Server   Apache/2.2.22 (Ubuntu)
Transfer-Encoding   chunked
X-Powered-By   PHP/5.3.10-1ubuntu3.2


"Content-Type" теперь тот, что надо, но pdf файл все равно не формируется.

Автор:  Sergey [ 20 авг 2012, 22:03 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

А чё на выходе получается?

Автор:  happyend [ 21 авг 2012, 01:20 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

Да ответ приходит тот же:
Код:
%PDF-1.4
%����
3 0 obj
<</Type /Page
/Parent 1 0 R
...
...

Автор:  happyend [ 24 авг 2012, 11:02 ]
Заголовок сообщения:  Re: Выгрузка в PDF с помощью MPDF

Интересно, а может быть причиной сему то, что я pdf формирую посредством ajax?
Т.е. по сути я к экшену контроллера, который формирует мне pdf, обращаюсь ассинхронно. Т.е по сути ответ мне должен придти в определенное место html-разметки. И возможно потому и приходит в таком виде.
Как думаете? просто не смог накопать в интернете...

Страница 1 из 2 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/