This should work, but it seems that something I was missing.
I have a pdf file on the local disk. It is clear that Chrome and other browsers can not get the local address of the URL, because it is isolated, so I have a servlet that retrieves data from a local disk and sends it back through the ajax call a web client. I do not get any errors, and it seems that a PDF viewer is loaded, but the file is not displayed. I encode it in advance, but it still won't work. My numerous approaches are listed below, but I will not include the servlet code as it works.
Run 1:
function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); $("#embedHolder").append("<object id='embedder' width='80%' height='600px'><embed width=100% height=100%" + ' type="application/pdf"' + ' src="data:application/pdf;base64,' + base64EncodedPDF + "></embed></object>"); }); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); }
Run 2:
function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } id = "repObjID" type = "application / pdf" width = " function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } ; function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } ; function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } type = "application / pdf"> </ embed>'); function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } ; function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } (embed).; function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } (obj).; function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } (/% ([0-9A-F] { function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } , p1) { function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); } ); function embedFile(){ $.get("FileGetter", function(pdfText){ var base64EncodedPDF = b64EncodeUnicode(pdfText); var obj = $('<object id="repObjID" type="application/pdf" width="100%" height="600" border="2"></object>'); obj.attr('data',base64EncodedPDF); var embed = $('<embed type="application/pdf"></embed>'); embed.attr('src',base64EncodedPDF); $('#repObjID').append(embed); $("#docHolder").html(obj); } function b64EncodeUnicode(str) { return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode('0x' + p1); })); }