I attempted 2 ways in chrome and IE
function _arrayBufferToBase64(buffer) { // Convert Array Buffer to Base 64 string
var binary = '';
//var bytes = new Uint8Array(buffer);
var bytes = new Uint32Array(buffer);
var len = bytes.byteLength;
for (var i = 0; i < len; i++) {
binary += String.fromCharCode(bytes[i]);
}
return window.btoa(binary);
}
function CreateEmailAttachment(results) {
var aFileParts = [document.documentElement.innerHTML];
var oMyBlob = new Blob([newDoc]); // the blob
//Email attachment parameters
var activitymimeattachment = Object();
activitymimeattachment.ObjectId = Object();
activitymimeattachment.ObjectId.LogicalName = "email";
activitymimeattachment.ObjectId.Id = results.ActivityId;
activitymimeattachment.ObjectTypeCode = "email",
activitymimeattachment.Subject = "File Attachment";
var pdflocation = pdfpath + printContents + '.pdf';
/* get file using ajax both binary and string
$.ajax({
url: pdflocation,
type: "GET",
//dataType: "binary",
dataType: "string",
processData: false,
success: function(result){
var buffer = new ArrayBuffer( result.length );
var len = buffer.length;
var bytes = new Uint8Array( buffer );
for (var i = 0; i < len; i++) {
bytes[i] = buffer.charCodeAt(i);
}
var str = _arrayBufferToBase64(result)
// do something with binary data
activitymimeattachment.Body = str;
activitymimeattachment.FileName = OrderNum + ".pdf";
activitymimeattachment.MimeType = "application/pdf";
//Attachment call
SDK.REST.createRecord(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { errorHandler(error, options + "- [CreateEmailAttachment]"); });
},
error: function() { alert('Failed!'); }
});
*/
/* jQuery
jQuery.get(pdflocation, function(data) {
var str = _arrayBufferToBase64(data);
//var str = new Blob([data], { type: 'application/pdf' });
//activitymimeattachment.Body = btoa(encode64(BinaryToArray(str)));
//activitymimeattachment.Body = data;
//activitymimeattachment.Body = btoa(unescape(str));
//activitymimeattachment.Body = atob(unescape(str));
activitymimeattachment.Body = str;
activitymimeattachment.FileName = OrderNum + ".pdf";
activitymimeattachment.MimeType = "application/pdf";
//Attachment call
SDK.REST.createRecord(activitymimeattachment, "ActivityMimeAttachment", ActivityMimeAttachmentCallBack, function (error) { errorHandler(error, options + "- [CreateEmailAttachment]"); });
});
*/
}
Just remove the comment for each section