Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 返回奇怪字符的TCPDF_Php_Html_Ajax_Extjs_Tcpdf - Fatal编程技术网

Php 返回奇怪字符的TCPDF

Php 返回奇怪字符的TCPDF,php,html,ajax,extjs,tcpdf,Php,Html,Ajax,Extjs,Tcpdf,也许你能帮我。当我试图显示我创建的pdf时,我得到了一些像这样的奇怪符号 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��

也许你能帮我。当我试图显示我创建的pdf时,我得到了一些像这样的奇怪符号

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`����
Ext.Ajax.request
            (
                {
                    method: 'post',
                    url: '../servidor/archivo/ingreso/getreporte',
                    success: function(response){
                    Ext.getCmp('winReporteRegistro').update( response.responseText );
                       }
                    }
            );
我要做的是用这段代码转换一个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');  
另一方面,我是这样接受的

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

有什么想法吗


提前感谢,

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

创建blob后,可以创建URL对象()

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

添加代码段:

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

返回文件的位置并打开另一个网页中的答案,代码为:

服务器:

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

                       }
                }
            );

谢谢

很抱歉回答晚了,但我昨天在这件事上摔坏了牙,今天早上我得到了启发:-) 您需要支持mime类型,因此只需将其添加到.htaccess中即可:

AddType application/pdf .pdf

像这样的?var blob=新blob(response.responseText);objectURL=URL.createObjectURL(blob);Ext.getCmp('winReporteRegistro').update(objectURL);该窗口没有显示任何内容:(接近我所拥有的内容。var blob=new blob(response.responseText,{type:'application/pdf'});var objectURL=URL.createObjectURL(blob);一旦你有了一个对象URL,你可以将其显示为下载链接或直接下载pdf。我还发现了这一点,试图添加一个窗口var window=Ext.create('Ext.window.window',{items:[{xtype:'component',autoEl:{tag:'a',href:objectURL,html:'Example.com'}以显示超链接,但仍然没有运气。该窗口不会出现,您只需执行一个简单的
window.open(objectURL)即可它应该在一个新的浏览器窗口中打开它。它不工作,什么也不会发生。Ext.Ajax.request({method:'post',url:'../servidor/archivo/ingreso/getreport',success:function(response){var blob=new blob(response.responseText,{type:'application/pdf'});var objectURL=url.createObjectURL(blob);window.open(objectURL);},};;我不知道为什么..可能是它的编码问题?检查此项以查找通过“怪异符号”进行的转换它是俄语的,但我想你很容易理解。