2016-07-20 1 views
0

J'ai essayé de convertir une page html en pdf et a été décidé d'utiliser mPDF, je suis ce que la documentation fait. Lors de l'exécution du code, il ne demande pas au fichier PDF de demander l'enregistrement. Btw je reçois ces codes d'erreur.erreur mPDF sur Codeigniter

Voici le code de Controller.

//this data will be passed on to the view 
    $data['the_content']='mPDF and CodeIgniter are cool!'; 

    //load the view, pass the variable and do not show it but "save" the output into $html variable 
    $html=$this->load->view('ajax/pdf_output', $data, true); 

    //this the the PDF filename that user will get to download 
    $pdfFilePath = "the_pdf_output.pdf"; 

    //load mPDF library 
    $this->load->library('m_pdf'); 
    //actually, you can pass mPDF parameter on this load() function 
    $pdf = $this->m_pdf->load(); 
    //generate the PDF! 
    $pdf->WriteHTML($html); 
    //offer it to user via browser download! (The PDF won't be saved on your server HDD) 
    $pdf->Output($pdfFilePath, "I"); 

ci-dessous est le résultat i obtenir: % PDF-1,4% 3 0 obj <>/Contenu 4 0 R >> endobj 4 0 obj <> écouter xP] O @ 㓚 ^1 h 7 C B (h sW Fs vvv B ') ձ Cgha 6 Mp 6 H [U [P { - [ uz # 뮉 r @ Υ 9 R ' J h & e J YW f \ /m Ӷ Jw j N ގ ^ = f! ƲO o 92yh m���9� �e��[��#�3���?u�R%_�¿�)�X|jt2H׆��+��S�� ™ 9% R : ƒ7 m Z 9n endstream endobj 1 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj 7 0 obj <> endobj 8 0 obj <> flux/CIDInit/ProcSet findresource début 12 dict début begincmap/CIDSystemInfo>> def/CMapName/Adobe-Identity-UCS def/CMapType 2 def 1 begincodespacerange < 0000> endcodespacerange 1 beginbfrange < 0000> < 0000> endbfrange endcmap CMapName currentdict/CMap defineresource pop fin end endobj 9 0 obj <> endobj 10 0 obj < >>/FontFile2 12 0 R >> endobj 11 0 obj <> flux x V Qfd% {dT * l- Ȉ _ s ڥ } @; t : Nt S n 3 m s B h JW nt [ Nw^ { & l GM7 l { z ^4 ^ 7 ] B - J V [ K } [} G fVnw endstream endobj 12 0 obj <> flux x? | \ TU 9 ; . zqIe ] ce t ��apfQQ�q�qGKSS+5-K+Ӟ�z�6�35���gi���wν3d=��}����g�s�=������\0�B��4#+76�r����=\��}�O��:�p <7�r���G~BHH���EŖ�j��B�C_U��W /� q<��U�}��<�!��t�Qo��ۀPdwXN���<���X���<�~]��Po3oC(��_��gW��Ўz��r��8�XR!<����+�vG�B4�Q��� ����Z�<���(��^�Dhk��@��r'WQ����h4�F��i�Fw���H$�]�3�$77kBi(��e��A�=7�"凨����C���]D��.=�onf�577���l��$��y#����? ��CA(�G!(���#��:�Ѓ��uE݀�p�"Qw�z�����F}P4��bP,����8�EP<���h����h�yQJF)H�R�(4��1h,JG(e�l4��\��ƣ|4MD�@�S�T4 =���H:�Ev$���-�|�tdF3�r��w�\�����>�����~�N��0O Z ˀ ; 0 > H m $ Z | ^t E r Uo l/ì- a^ $ @ ΢O b A5h L ] tx1 $ d Y Y Jf , W qo Cf "< $ a2z " 8> = ' ˧ s */z [ * { @ x op: . O A { ? P Yz - ޡ ! Y } kP & T ] H "0 Qi c & oL Q c Ҥc C H 11 * = 6 { | .EE H ܉ dO [, ~ O 5 ֓ І,> ​​ lozG s 6Mo ^m 0P !, T # DK " SS ku # % 33 ̐ hz I z v zNG ` N " a [

Tout le monde peut me dire ce qui se passe avec ça?

Répondre

0

il semble que le paramètre « I » est à l'origine des problèmes parce que le navigateur ne reconnaît pas votre fichier

selon les docu que vous avez les possibilités suivantes :

I: envoie le fichier en ligne au navigateur. Le plug-in est utilisé si disponible. Le nom donné par $ filename est utilisé lorsque l'on sélectionne l'option "Save as" sur le lien générant le PDF. D: envoyer au navigateur et forcer le téléchargement d'un fichier avec le nom donné par $ nom_fichier. F: sauvegarde dans un fichier local avec le nom donné par $ filename (peut inclure un chemin). S: renvoie le document sous la forme d'une chaîne.

$ filename est ignoré.

essayer quelque chose comme ça:

$pdf->Output($pdfFilePath, "D"); 
die; 

ou d'autre part, vous pouvez essayer d'ajouter un peu de tête pour indiquer au navigateur explicitement est un document pdf

header('Content-Type: application/pdf'); 
$pdf->Output($pdfFilePath, "I"); 
die; 

parce qu'il pourrait être CIs La classe outpout écrase l'en-tête de MPDF (mais ce n'est qu'une intuition)

+0

J'ai été essayé pour les deux, soit "I" ou "D". il retourne la même erreur. –

+0

est-ce quelque chose le bloquer ou? –

0
$html=$this->load->view("ajax/pdf_output",$data,true); 
    //load mPDF library 
    $this->load->library('m_pdf'); 
    //generate the PDF from the given html 
    $this->m_pdf->pdf->WriteHTML($html); 
    //download it. 
    ob_clean(); 
    $this->m_pdf->pdf->Output($pdfFilePath,'F'); 

check your folder..... 
+0

Salut Kuldeep, $ this-> m_pdf-> pdf-> Sortie ($ pdfFichierPath, 'F'); fonctionnent bien .. mais il est automatiquement enregistré dans le serveur. Une idée sur invite et demande de sauver? –

0

Si vous voulez montrer le dialogue de téléchargement de votre besoin de placer sous le code

$filename = time()."_order.pdf"; //your file name 
$html = $this->load->view('unpaid_voucher2',$data,true); 
/// $data variable is your dynamic data if you have no dynmic data then you can pass empty instead of variable like. 
$html = $this->load->view('unpaid_voucher2','',true); 
$this->load->library('M_pdf'); 
$this->m_pdf->pdf->WriteHTML($html); 

//For download pass D and save on server pass F. 
$this->m_pdf->pdf->Output("./uploads/".$filename, "D"); 

Voici la configuration complète à integrate mpdf into codeigniter

0

La chaîne est une représentation PDF binaire et sa présence signifie Content-type: application/pdf tête n'est pas envoyé correctement ou il est outrepassée par votre code ou votre configuration. Probablement par text/plain ou text/html.

Essayez de comprendre ces:

  • Êtes-vous la remise à zéro en-tête Content-type dans le code PHP quelque part après avoir appelé la méthode MPDF Output?
  • Votre serveur impose-t-il un Content-type différent quelque part dans votre configuration?
  • Votre navigateur supporte-t-il l'affichage application/pdf Type de contenu directement?

Étant donné que le D mode de sortie vous donne le même résultat, je suppose que l'en-tête Content-type est outrepassée quelque part après avoir appelé la méthode Output, probablement par CodeIgniter.