2011-12-31 2 views
0

Je suis en train de créer un fichier PDF en utilisant DOM pdf et Codeigniter. J'ai le script suivant dans mon contrôleur et j'ai gardé le dossier DOM à l'intérieur de mon contrôleur. Mais quand je cours le manuscrit je reçois le message d'erreur fatal.DOM PDF ne fonctionne pas lors du chargement du fichier de vue Codeigniter

Mais quand j'envoie une valeur de mon modèle au $ html de dompdf qui est dans mon contrôleur .. Je peux générer le pdf.

Pourriez-vous s'il vous plaît bien vouloir me aider comment se débarrasser de cette erreur?

include_once('dompdf/dompdf_config.inc.php'); 
    $html= $this->load->view('view_pdf'); 
    $dompdf = new DOMPDF(); 
    $dompdf->load_html($html); 
    $dompdf->set_paper("a4", "landscape"); 

    $dompdf->render(); 
    $dompdf->stream("my_pdf.pdf", array("Attachment" => 0)); 

Ceci est mon fichier Voir;

<html> 
<head> 
<style> 
    #header { position: absolute; left: 0; top: -50px; right: 0; height: 140px; text-align: center; } 
    #footer {position: fixed ; left: 0px; bottom: -20px; right: 0px; height: 30px; font-size:10; } 
    #footer .page:after { content: counter(page, upper-roman); } 


     #table-6 { 
     width: 100% 
     border: 1px solid #B0B0B0; 
     } 
     #table-6 tbody { 
     /* Kind of irrelevant unless your .css is alreadt doing something else */ 
     margin: 0; 
     padding: 0; 
     border: 0; 
     outline: 0; 
     font-size: 100%; 
     vertical-align: baseline; 
     background: transparent; 
     } 


     #table-6 td { 
     padding: 3px 10px; 
     font-size: 12px; 
     font-weight: normal; 
     text-align:center; 
     } 
     #table-6 tr:nth-child(even) { 
     background: #F2F2F2; 
     font-size: 12px; 
     font-weight: normal; 
     } 




</style> 

    </head> 

    <body> 


    This is a test 
    </body> 

    </html> 

Répondre

2

Selon le CodeIgniter documentation on views vous devez modifier votre appel à load-> vue() de telle sorte que les données sont renvoyées sous forme de chaîne au contrôleur plutôt que poussé au navigateur Web. Essayez de modifier votre code de contrôleur comme suit:

include_once('dompdf/dompdf_config.inc.php'); 
$html= $this->load->view('view_pdf','',true); 
$dompdf = new DOMPDF(); 
$dompdf->load_html($html); 
$dompdf->set_paper("a4", "landscape"); 

$dompdf->render(); 
$dompdf->stream("my_pdf.pdf", array("Attachment" => 0)); 

Le seul changement que je fait est d'ajouter les paramètres nécessaires à $this->load->view().

(Je ne me CodeIgniter. Ne tous les utilisateurs de CI ont quelque chose à ajouter?)

+0

BrianS Remerciez pour votre réponse. J'ai essayé votre code mais le résultat est le même .. Je reçois le même message d'erreur. Mais j'ai trouvé un moyen de résoudre mon problème et c'est .. au lieu d'utiliser le "View" j'utilise Model pour générer mon pdf. Je garde le script entier dans une variable, puis je renvoie la variable à mon contrôleur. puis il génère le PDF ... :) Merci .. et juste pour répondre à votre question .. les utilisateurs CI ne sont rien d'autre à ajouter ... à moins qu'ils ont créé un autre dossier dans la vue .. :) merci encore. BrianS –

+0

@Srijon essayez à nouveau le code. J'ai dû modifier ma réponse car le dernier paramètre de '$ this-> load-> view()' était incorrect, il devrait être vrai au lieu de false. – BrianS

+0

Merci encore BrianS. Cela fonctionne maintenant parfaitement. :) –

Questions connexes