2017-09-29 5 views
2

peut-être vous pouvez m'aider. Lorsque je tente de montrer un pdf que j'ai créé, je suis des symboles étranges comme celui-ciTCPDF retournant des caractères étranges

u\>�'���O���r>c!%�@�R�`YPd+��vv����1��E�'^k-�WD�*+��W^��wy��V Z��dUdJ�B���C�ڳtK����j:c���5����50���D3lgH#�}%���D+������ix����,��-�'\�� �_st^&0�Y���������v�*Ӗ,W����u!H��sNN��0cӝ��`xEk��d��^� �8K9�BL����9�̋"6/�E�|�̛�-�7�P��B�#�T�F���4`���� 

Ce que je fais est de transformer un fichier html avec ce code

$html = $this->load->view('ReporteIngresoView', $data, TRUE); 
    $pdf = new Pdf('P', 'mm', 'A4', TRUE, 'UTF-8', FALSE); 
    $pdf->SetTitle('Reporte ingreso'); 
    $pdf->SetHeaderMargin(30); 
    $pdf->SetTopMargin(40); 
    $pdf->setFooterMargin(20); 
    $pdf->SetAutoPageBreak(TRUE); 
    $pdf->SetAuthor('Pontificia Universidad Católica del Ecuador'); 
    $pdf->SetDisplayMode('real', 'default'); 
    $pdf->AddPage(); 
    $pdf->writeHTML($html, TRUE, 0, TRUE, 0); 
    $pdf->Output('My-File-Name.pdf', 'I'); 

De l'autre côté, je reçois comme ça

Ext.Ajax.request 
      (
       { 
        method: 'post', 
        url: '../servidor/archivo/ingreso/getreporte', 
        success: function(response){ 
        Ext.getCmp('winReporteRegistro').update(response.responseText); 
         } 
        } 
      ); 

J'utilise php (serveur), HTML (créer la page), ExtJS (interface), ajax (demande) et TCPDF pour créer le pdf.

Des idées?

Merci à l'avance,

+0

Peut-être que ses problèmes d'encodage? Vérifiez cela pour trouver la conversion par "symboles étranges" https://habrastorage.org/storage2/61b/e7a/455/61be7a4552a6650bd19b526db63d4779.png Son en russe, mais je pense que vous pouvez facilement le comprendre. –

Répondre

0

De retour l'emplacement du fichier ouvert et dans une autre page Web a été la réponse, le code est:

Serveur:

$html = $this->load->view('ReporteCajaView', $data, TRUE); 

    $pdf = new Pdf('P', 'mm', 'A4', TRUE, 'UTF-8', FALSE); 
    $pdf->SetTitle('Reporte item'); 
    $pdf->SetHeaderMargin(30); 
    $pdf->SetTopMargin(20); 
    $pdf->setFooterMargin(20); 
    $pdf->SetMargins(25, 20, 20, true); 
    $pdf->SetAutoPageBreak(TRUE); 
    $pdf->SetAuthor('Universidad Católica'); 
    $pdf->SetDisplayMode('real', 'default'); 
    $pdf->setPrintHeader(FALSE); 
    $pdf->setPrintFooter(FALSE); 
    $pdf->AddPage(); 

    $id = uniqid(); 
    $pdf->writeHTML($html, TRUE, 0, TRUE, 0); 
    $pathservidor = 'c:/wamp64/www/Archivo/pdf/'; 
    $pdf->Output($pathservidor . 'Reporte de caja' . '.pdf', 'F'); 

    echo 'c:/wamp64/www/Archivo/pdf/'.'Reporte de caja'.'.pdf'; 

client :

Ext.Ajax.request 
      (
       { 
        method: 'post', 
        url: '../servidor/archivo/item/getreporte', 

        success: function(response){ 
        window.open(response.responseText); 

         } 
       } 
      ); 

Merci!

1

Vous devez convertir la réponse à un Blob (link)

Après avoir créé le blob, vous pouvez créer un objet URL (link)

Voilà comment je créer un fichier pdf généré par le serveur et l'afficher sur le frontal.

Ajout d'extrait de code:

var blob = new Blob(response.responseText, {type: 'application/pdf'}); 
var objectURL = URL.createObjectURL(blob); 
+0

Quelque chose comme ça? var blob = nouveau Blob (response.responseText); objectURL = URL.createObjectURL (blob); Ext.getCmp ('winReporteRegistro'). Mise à jour (objetURL); La fenêtre ne showhing rien :( – Esteban

+1

proche de ce que j'ai blob var = new Blob (response.responseText, {type: 'application/pdf'});. var = objectURL URL.createObjectURL (blob); Une fois que vous avez une URL d'objet, vous pouvez l'afficher en tant que lien de téléchargement ou télécharger le pdf directement.Aussi trouvé ce [link] (https://stackoverflow.com/questions/19327749/javascript-blob-filename-without-link) Je – veggirice

+0

essayé d'ajouter une fenêtre fenêtre var = Ext.create ('Ext.window.Window', { articles: [{ xtype: 'composant', autoEl: { tag: 'a', href: objectURL, html: 'Example.com' } Pour afficher le lien hypertexte mais toujours pas de chance. La fenêtre n'apparaît pas – Esteban