salut,
j'utilise cakephp 2.7 et j'aimerai généré des vue en pdf ayant fait des recherches, je suis tombé sur html2pdf, qui semble être facile à adapté seulement que moi je n'arrive pas voici ce que je fait comme étape d'intégration: eyant télécharger le dépot sur le site officiel, j'ai transférer vers le repertoire vendor
2- j'ai ajouter le ligne suivante dans le fichier route:

Router::parseExtensions('pdf');

3-j'ai créer le repertoire pdf dans app/vew/pdf et dans app/vew/themed/membre/Notes/pdf
4-dans mon controllers Notes j'ai ceci:

public function membre_exportpdf(){
    //pour éviter les outputs du debug de cake
    Configure::write('debug',0);
    //la solution depuis cakephp 2
    $this->response->type('pdf');
    $this->layout ='pdf';
}

4-aussi le layout app/vew/Layout/pdf.ctp
5-lorsque j'execute l'action exportpdf, j'ai cet erreur:

An Internal Error Has Occurred.

Error: An Internal Error Has Occurred.
j'aimerai savoir si j'ai loupé quelque chose ou si il y'a une étape mal configuré, moi je ne sais pas comment l'utilisé dans cake php
quelqu'un peut me venir en aide?

1 réponse


romses
Auteur
Réponse acceptée

salut ayant fais d'autre recherche j'ai pu avancé pour la génération d'une vue en pdf en utilisant html2pdf,
voila ayant mis dans mis dans le vendor le repertoire html2pdf, j'ai créer un controlleur Invoices donc voici le code de l'action:

<?php
App::uses('AppController', 'Controller');
class InvoicesController extends AppController {
    public $uses = array();
    public function membre_pdf($id = null) {
        $this->autoRender = false;
        $this->layout = null;
        $view = new View($this, false);
        $view->set('variable', true);
        $view_output = $view->render('pdf');
        $content = "
<page>
    <h1>Exemple d'utilisation</h1>
    <br>
    Ceci est un <b>exemple d'utilisation</b>
    de <a href='http://html2pdf.fr/'>HTML2PDF</a>.<br>
</page>";
        // Load from Vendors dir
        App::import('Vendor', 'html2pdf', array('file' => 'html2pdf' .DS . 'html2pdf.php'));
        $html2pdf = new HTML2PDF('P', 'A4', 'fr');
        $html2pdf->pdf->SetDisplayMode('fullpage');
        $html2pdf->writeHTML($content);
        $html2pdf->Output('test.pdf', 'I');
    }
}
?>

et le fichier app/vew/Invoices/pdf.ctp.
dans ma vue j'ai le lien suivant pour imprimer:

<?php echo $this->Html->link('PDF', array('controller' => 'Invoices', 'action' => 'pdf','ext' => 'pdf'));  ?>

mais lorsque je clique sur le lien j'ai un résultat incohéren illisible l'information est bien généré mais encodé comment rendre
les données lisible? voici le résultat:

%PDF-1.7 3 0 obj <> /Resources 2 0 R /Annots [ 200001 0 R ] /Contents 4 0 R>> endobj 4 0 obj <> stream x���OO�0����M=������� �D��� �A��o��d85��6}�<��iZ��` �>��’�qǏ�8w8�IH{�12'x����uNA���G[S�� s�ś�b� � ��"c���.��8{�O/S��hU�by_ϳ�\�jt�w0�%���5�(��%V3l3�oI�5�6��Ǿ����m� ����^(&mf�����틻v�7����45L:B�(�����1�O�T�MZ���Z��v 1�Jv��=��� endstream endobj 1 0 obj <> endobj 5 0 obj << /Type /OCG /Name (��print) /Usage << /Print <> /View <> >> >> endobj 6 0 obj << /Type /OCG /Name (��view) /Usage << /Print <> /View <> >> >> endobj 7 0 obj <> endobj 8 0 obj <> endobj 2 0 obj << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI] /Font << /F1 7 0 R /F2 8 0 R >> /XObject << >> /Properties <> /ExtGState << >> >> endobj 200001 0 obj <> /H /I>> endobj 9 0 obj << /Creator (��HTML2PDF - TCPDF) /Producer (��TCPDF 5.0.002 (http://www.tcpdf.org) (TCPDF)) /CreationDate (D:20150816230008+00'00') /ModDate (D:20150816230008+00'00') >> endobj 10 0 obj << /Type /Catalog /Pages 1 0 R /OpenAction [3 0 R /Fit] /PageLayout /SinglePage /PageMode /UseNone /Names << >> /ViewerPreferences << /Direction /L2R >> /OCProperties <> <>]>>>> >> endobj xref 0 11 0000000000 65535 f 0000000537 00000 n 0000001050 00000 n 0000000009 00000 n 0000000198 00000 n 0000000597 00000 n 0000000716 00000 n 0000000833 00000 n 0000000939 00000 n 0000001478 00000 n 0000001727 00000 n 200001 1 0000001219 00000 n trailer << /Size 11 /Root 10 0 R /Info 9 0 R >> startxref 2087 %%EOF