Генерация PDF Symfony2 IoTcpdfBundle - PullRequest
1 голос
/ 24 марта 2012

Я создаю pdf-файл с IoTcpdfBundle, используя Symfony2, но есть странное поведение, которое я не понимаю.

Когда я на контроллере, я генерирую pdf-файл так:

$html = $this->renderView('MyBundle:Docs:solicituddevacaciones.pdf.twig', array());
return $this->get('io_tcpdf')->quick_pdf($html);

Эти строки генерируют PDF-файл. Все хорошо, я могу щелкнуть правой кнопкой мыши по файлу, чтобы сохранить его, и это файл .pdf.

Но когда я получаю некоторые данные, используя форму, и я помещаю строки в:

if ($request->getMethod() == 'POST') {
    $year = $this->get('request')->request->get('year');
    $date= $this->get('request')->request->get('date');

    $html = $this->renderView('SoflaSoflaBundle:Documentales:solicituddevacaciones.pdf.twig', array());
    return $this->get('io_tcpdf')->quick_pdf($html);        
}

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

Почему это происходит? Мне нужно, чтобы пользователи могли сохранять файлы в формате .pdf.

Нужна помощь с этим, пожалуйста.

Ответы [ 2 ]

1 голос
/ 10 мая 2012

У меня были похожие проблемы, и я обнаружил, что пакет может быть уже устаревшим.Мне пришлось изменить некоторые настройки, наиболее важно добавить еще один заголовок к функции quick_pdf класса Tcpdf в папке «Helper» пакета:

 $response->headers->set('Content-Disposition', 'attachment; filename="'.$file.'"');

Теперь это работает как чудо, вызывая его в контроллерекак:

        $html = $this->renderView('Bundle:Item:print.pdf.twig', array(
        'some' => $this->value,
    ));

    return $this->get('io_tcpdf')->quick_pdf($html, "yourFileName.pdf");
0 голосов
/ 25 марта 2012

Попробуйте сохранить HTML (или, что еще лучше, щелкните левой кнопкой мыши, а не правой кнопкой мыши) и проверьте содержимое этого файла.Возможно, у вас где-то есть ошибка, и этот html-файл - это файл, сгенерированный symfony для объяснения ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...