Generowanie plików PDF w Kohana 3.3

Generowanie dokumentów PDF, to podstawowa funkcjonalność w przypadku aplikacji typowo biznesowy. Generowanie zestawień czy faktur w formie do druku to idealne zastosowanie dla PDF. Aby projekt powstał jak najszybciej oczywiście korzystam z gotowych narzędzi podstawą jest Kohana Framework w wersji 3.3 oraz moduł przystosowujący bibliotekę mPDF do Kohana PHP https://github.com/smgladkovskiy/kohana-mpdf

Dodatkowy moduł Kohana

Zakładając, że pracujesz z systemem zarządzania wersją GIT, instalacja modułu sprowadza się do sklonowania repo do katalogu /modules

Aby to wykonać w cygwin lub konsoli w systemie linux wpisz:

cd modules
git clone git://github.com/smgladkovskiy/kohana-mpdf.git mpdf

Jeżeli pracujesz bez żadnego systemu zarządzania wersją. Utwórz w katalogu modules folder mpdf, a skopiuj tam zawartość repo.

Biblioteka mPDF

To jeszcze nie koniec instalacji moduł, potrzebujemy jeszcze najnowszej wersji klasy mPDF. Ściągnij ze strony http://www.mpdf1.com/mpdf/index.php najnowszą wersję klasy i całą zawartość umieść w folderze /modules/mpdf/vendor

Pokaż Kohanie nowy moduł

Aby korzystać z nowych możliwości wystarczy już jedynie dopisać w bootstrap jedną linię kodu


Kohana::modules(array(
...
 'mpdf' => MODPATH.'mpdf', // Class to generation PDF from HTML

...
 ));

Akcja w kontrolerze

Mój kontroler odpowiada za obsługę drużyny zgłoszonej do konkursu jedną z funkcjonalności jest generowanie karty zgłoszeniowe w formacie PDF. Przykładowy kontroler wygląda tak:


<?php public function action_pdf(){
 $this->auto_render=FALSE;
 $this->response->headers('Content-Type', 'application/pdf');
 $pdf = View_MPDF::factory('karta_zgloszeniowa'); // Argumentem metody jest nazwa pliku php z folderu /Application/View/
 $pdf->data = ORM::factory('team', $this->request->param('id')); //Przekazujemy do widoku informacje o zespole z bazy danych
 $pdf->members = ORM::factory('teams_member', $pdf->data->id)->find_all(); // Przekazujemy informacje o członkach teamu
 $pdf->inline($pdf->data->name); //Argumentem metody jest nazwa pliku PDF, którego będziemy generować
 }

 ?>

4 thoughts on “Generowanie plików PDF w Kohana 3.3

  1. Cezary

    Cześć
    Właśnie pracuję nad generowaniem PDF w Kohana 3.3.1 i mam problem z przekazaniem do PDFa danych pobranych z bazy.
    Masz w przykładzie taką linijkę:

    $pdf->members = ORM::factory(‚teams_member’, $pdf->data->id)->find_all();

    Wiesz może jak te dane odczytać w widoku ‚karta_zgloszeniowa’ i powkładać je tam w odpowiednie pola?
    Jeśli spróbujemy coś w tym stylu w widoku: echo $pdf->members->name to nic się nie wypisuje na wygenerowanym pdfie.

    Dzięki
    Czarek

    • Sebastian Czarnecki Post author
      <?php
      $pdf = View_MPDF::factory('karta_zgloszeniowa');
      $pdf->members = ORM::factory('teams_member',$id ); //niewiem skąd bierzesz id może z $_GET podaj id do osoby z teamu
      $pdf->inline('Karta zgłoszenia');
      
      ?> 
      

      W widoku te dane możesz wypisać w ten sposób

      <?php echo $members->name; ?>
      

      A tak nawiązując jeszcze do twoich błędów.
      ->find_all(); zwraca tablice wyników.

      Pamiętaj też, że View_MPDF dziedziczy po View, więc mamy dostęp do wszystkich metod, które są w View jak np bind() czy set ()

  2. Miku Loder

    Dzięki! Jestem wdzięczny za ten wpis. Czy jest może moduł Kohana do generowania plików excel?

Comments are closed.