Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/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
如何在javascript中打开base64编码的pdf_Javascript_Jquery_Pdf - Fatal编程技术网

如何在javascript中打开base64编码的pdf

如何在javascript中打开base64编码的pdf,javascript,jquery,pdf,Javascript,Jquery,Pdf,当我打开pdf时,会得到一个空白的pdf。我的回答是来自SpringMVC的outputstream结果 请提供帮助。对于Chrome和Firefox,您可以直接在对象标记上使用base64数据: var ajaxSettings = { url: urls.orders.list+"/"+singlePacket.requests[0].order_id+"/labels", //request labels the status will change to Ship

当我打开pdf时,会得到一个空白的pdf。我的回答是来自SpringMVC的outputstream结果


请提供帮助。

对于Chrome和Firefox,您可以直接在对象标记上使用base64数据:

var ajaxSettings = {
            url: urls.orders.list+"/"+singlePacket.requests[0].order_id+"/labels", //request labels the status will change to ShipperAssigned
            type: "GET",
            contentType: "application/json",
            headers: { "Authorization": "Bearer " + api.access_token },
            success: function (resp) {
                if (resp != null) {
                    var d = btoa(unescape(encodeURIComponent(resp)));
                    console.log(d);
                    if(d != null)
                    window.open('data:application/pdf;base64, ' + d);
                }

            },
            error: function (jqXhr, textstatus, errorThrown) {
                console.log("Status: " + jqXhr.status + ": error thrown in downloadLabels: " + errorThrown);
                hide_shipping_progress_modal();
            }
        };
        $.ajax(ajaxSettings);
var objbuilder='';
objbuilder+=(“”);
objbuilder+=(“”);
objbuilder+=(“”);
然后添加到现有页面或打开新窗口:

    var objbuilder = '';
    objbuilder += ('<object width="100%" height="100%"      data="data:application/pdf;base64,');
    objbuilder += (base64PDF);
    objbuilder += ('" type="application/pdf" class="internal">');
    objbuilder += ('<embed src="data:application/pdf;base64,');
    objbuilder += (base64PDF);
    objbuilder += ('" type="application/pdf" />');
    objbuilder += ('</object>');
var-win=window.open(“,”_blank“,”titlebar=yes”);
win.document.title=“我的标题”;
win.document.write(“”);
win.document.write(objbuilder);
win.document.write(“”);
layer=jQuery(win.document);
您可以检查此页面后面的Javascript,它是一个PDF格式服务。Chrome和Firefox可以嵌入页面或显示在新窗口中,即不支持对象中的base64(或其他任何东西),因此此代码会触发下载。

JavaScript代码:
var win = window.open("","_blank","titlebar=yes");
        win.document.title = "My Title";
        win.document.write('<html><body>');
        win.document.write(objbuilder);
        win.document.write('</body></html>');
        layer = jQuery(win.document);
============= jQuery.ajax({ url:site_params.ajaxurl, 类型:“POST”, 数据:总箱数据, 数据类型:“json”, 成功:功能(响应){ div_name.prop(“禁用”,false); jQuery('.createpdfdata').text('createpdf'); 如果(response.status==“failure”){ //按设计显示消息 //警报(响应.错误消息); jQuery('.extra\u error\u message').html(''+response.error\u message+''); //jQuery('#signup').val('Register'); }else if(response.status==“success”){ var myBase64=response.filenamepdf; var-blob; blob=converBase64toBlob(myBase64,“application/pdf”); var blobURL=URL.createObjectURL(blob); 如果(!window.ActiveXObject){ var save=document.createElement('a'); save.href=blobURL; save.download=response.filenamepdfdata | |“未知”; save.style='显示:无;不透明度:0;颜色:透明;'; (document.body | | document.documentElement).appendChild(保存); 如果(保存的类型。单击==='函数'){ 保存。单击(); }否则{ save.target=''u blank'; var event=document.createEvent('event'); initEvent('click',true,true); save.dispatchEvent(事件); } (window.URL | | window.webkitURL).revokeObjectURL(save.href); }else if(!!window.ActiveXObject&&document.execCommand){//for IE var _window=window.open(blobURL,_blank'); _window.document.close(); _window.document.execCommand('SaveAs',true,response.filenamepdfdata | | blobURL) _window.close(); } jQuery('.extra_success_message').html(''+response.success_msg+''); //jQuery('#signup').val('Register'); }否则{ //根据设计显示错误或成功消息不在警报中 //警报(“pdf未生成”); jQuery('.extra\u error\u message').html(''+response.error\u message+''); } } }); 函数converBase64toBlob(content,contentType){ contentType=contentType | |“”; var-sliceSize=512; var byteCharacters=window.atob(content);//将base64转换为二进制的方法 var ByteArray=[ ]; 对于(变量偏移量=0;偏移量WriteHTML($html); $mpdf->useOnlyCoreFonts=true; $mpdf->SetDisplayMode('fullpage'); //$mpdf->Output($file_name_url,'I'); $base_64_string=base64_encode($mpdf->Output($file_name_pdf,'S')); $resultar['status']='success'; $resultArr['success\u msg']=\uuuuuu(“您的PDF已成功生成”); $resultArr['filepath']=$newurl; $resultArr['filenamepdf']=$base\u 64\u字符串; $resultar['filenamepdfdata']=$file\u name\u pdf; //回声“; //打印(Resultar); echo json_编码($Resultar); 模具();
您使用的浏览器是什么?只有一些浏览器是自动的
JavaScript code :

=============
jQuery.ajax({
                url: site_params.ajaxurl,
                type: "POST",
                data: total_box_data,
                dataType: 'json',
                success: function (response) {
                    div_name.prop("disabled", false);
                    jQuery('.createpdfdata').text('Create Pdf');
                    if (response.status == 'failure') {
                        // show message as per design
                        //alert(response.error_message);
                            jQuery('.extra_error_message').html('<div class="alert alert-danger">' + response.error_message + '</div>');
                        //  jQuery('#signup').val('Register');
                    } else if (response.status == 'success') {
                        var myBase64 = response.filenamepdf;
                        var blob;
                        blob = converBase64toBlob(myBase64, 'application/pdf');
                        var blobURL = URL.createObjectURL(blob);


                         if (!window.ActiveXObject) {
                             var save = document.createElement('a');
                             save.href = blobURL;
                             save.download = response.filenamepdfdata || 'unknown';
                             save.style = 'display:none;opacity:0;color:transparent;';
                             (document.body || document.documentElement).appendChild(save);

                             if (typeof save.click === 'function') {
                                 save.click();
                             } else {
                                 save.target = '_blank';
                                 var event = document.createEvent('Event');
                                 event.initEvent('click', true, true);
                                 save.dispatchEvent(event);
                             }
                             (window.URL || window.webkitURL).revokeObjectURL(save.href);
                         } else if (!!window.ActiveXObject && document.execCommand) { // for IE
                             var _window = window.open(blobURL, '_blank');
                             _window.document.close();
                             _window.document.execCommand('SaveAs', true, response.filenamepdfdata || blobURL)
                             _window.close();
                         }
                            jQuery('.extra_success_message').html('<div class="alert alert-success alert-dismissible">' + response.success_msg + '</div>'); 
                        //  jQuery('#signup').val('Register');
                    } else {
                        // show error or success message as per design not in alert
                        //alert('pdf is not generate');
                        jQuery('.extra_error_message').html('<div class="alert alert-danger">' + response.error_message + '</div>');
                    }
                }
            });

function converBase64toBlob(content, contentType) {
        contentType = contentType || '';
        var sliceSize = 512;
        var byteCharacters = window.atob(content); //method which converts base64 to binary
        var byteArrays = [
        ];
        for (var offset = 0; offset < byteCharacters.length; offset += sliceSize) {
          var slice = byteCharacters.slice(offset, offset + sliceSize);
          var byteNumbers = new Array(slice.length);
          for (var i = 0; i < slice.length; i++) {
            byteNumbers[i] = slice.charCodeAt(i);
          }
          var byteArray = new Uint8Array(byteNumbers);
          byteArrays.push(byteArray);
        }
        var blob = new Blob(byteArrays, {
          type: contentType
        }); //statement which creates the blob
        return blob;
      }




Php code :
==========
$html = '';
$html .= '
        <h3 class="h3_8">Get in touch with us on:</h3>
        <p class="p_3" >
            <span class="div3"><img style="margin:3px 3px 0 0; display:inline-block; vertical-align:top;" src="'.get_template_directory_uri().'/images/pdf_locationico.png" alt=""> '.$pdfaddress.'</span>
            <span class="div4"><img style="margin:4px 4px 0 24px; display:inline-block; vertical-align:top;" src="'.get_template_directory_uri().'/images/pdf_phoneico.png" alt="">  '.$pdftelephone.'</span> <br>
            <span class="div5"><img style="margin:7px 5px 0 0; display:inline-block; vertical-align:top;" src="'.get_template_directory_uri().'/images/pdf_mailico.png" alt=""> '.$pdfmailaddress.'</span>
            <span class="div6"><img style="margin:5px 4px 0 24px; display:inline-block; vertical-align:top;" src="'.get_template_directory_uri().'/images/pdf_websiteico.png" alt=""> <a href="'.$pdfsiteurl.'">'.$pdfsitetext.'</a></span>
        </p>';
    $file_name_pdf = 'digicore_' . time() . '.pdf';
    //$newurl = get_bloginfo('template_directory') . '/' . $file_name_pdf;
    $newurl = $upload_dir['url'] . '/' . $file_name_pdf;
    //$file_name_url = get_template_directory() . '/' . $file_name_pdf;
    chmod(get_template_directory(), 0777);
    chmod(get_bloginfo('template_directory'), 0777);
    chmod($upload_dir['url'],0777);
    chmod($upload_dir['path'],0777);

    $file_name_url = $upload_dir['path'] . '/' . $file_name_pdf;

    $mpdf = new mPDF();
    //echo $html;
    $mpdf->WriteHTML($html);

    $mpdf->useOnlyCoreFonts = true;

    $mpdf->SetDisplayMode('fullpage');

    //$mpdf->Output($file_name_url, 'I');
    $base_64_string =base64_encode($mpdf->Output($file_name_pdf, 'S'));

    $resultArr['status'] = 'success';
    $resultArr['success_msg'] = __('Your PDF Was Successfully Generated.');
    $resultArr['filepath'] = $newurl;
    $resultArr['filenamepdf'] = $base_64_string ;
    $resultArr['filenamepdfdata'] = $file_name_pdf;
    //echo "<pre>";
    //print_r($resultArr);
    echo json_encode($resultArr);
    die();