如何在javascript中打开base64编码的pdf
当我打开pdf时,会得到一个空白的pdf。我的回答是来自SpringMVC的outputstream结果如何在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
请提供帮助。对于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;偏移量
“.$pdfaddress”
“.$pdftelephone”。
“.$pdfmailaddress。”
';
$file\u name\u pdf='digicore\u。时间()。pdf';
//$newurl=get_bloginfo('template_directory')。/'$文件名(pdf),;
$newurl=$upload_dir['url']./'$文件名(pdf),;
//$file\u name\u url=get\u template\u directory()$文件名(pdf),;
chmod(获取模板目录(),0777);
chmod(get_bloginfo('template_directory'),0777);
chmod($upload_dir['url'],0777);
chmod($upload_dir['path'],0777);
$file\u name\u url=$upload\u dir['path']./'$文件名(pdf),;
$mpdf=新的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'));
$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();