代码之家  ›  专栏  ›  技术社区  ›  user6646487

TCPDF返回奇怪字符

  •  2
  • user6646487  · 技术社区  · 7 年前

    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`����
    

    我要做的是用这段代码转换一个html文件

        $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');  
    

    另一方面我是这样接受的

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

    我使用php(服务器)、html(创建页面)、extjs(接口)、ajax(请求)和TCPDF来创建pdf。

    有什么想法吗?

    3 回复  |  直到 7 年前
        1
  •  0
  •   veggirice    7 年前

    您需要将响应转换为Blob( link )

    link )

    这就是我如何创建服务器端生成的pdf并将其显示在前端的方法。

    添加代码段:

    var blob = new Blob(response.responseText, {type: 'application/pdf'}); 
    var objectURL = URL.createObjectURL(blob);
    
        2
  •  0
  •   user6646487 user6646487    7 年前

    服务器:

    $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';
    

    客户:

    Ext.Ajax.request
                (
                    {
                        method: 'post',
                        url: '../servidor/archivo/item/getreporte',
    
                        success: function(response){
                        window.open(response.responseText);
    
                           }
                    }
                );
    

    谢谢

        3
  •  0
  •   RedskyThirty    4 年前

    很抱歉回答得太晚,但我昨天在这件事上咬牙切齿,今天早上我得到了启发:-)

    AddType application/pdf .pdf