Im getting a PDF file from and external API, using this code I can download the file correctly:
var req = new XMLHttpRequest();
req.open("POST", url, true);
req.responseType = "blob";
req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
req.send(data);
req.onload = function (event) {
var blob = req.response;
var link=document.createElement('a');
link.href=window.URL.createObjectURL(blob);
link.download="receipt_" + new Date() + ".pdf";
link.click();
};
But what I really need is to print the file without open it, I tried something like
window.open(window.URL.createObjectURL(blob));
window.print();
But when do this way the file does not show correctly, It shows something like this:
PDF-1.7
%����
6 0 obj
<< /Type /Page /Parent 1 0 R /LastModified (D:20201027223421-03'00') ... bla bla
Thanks in advance!
I have already solve this using:
req.onload = function (event) {
var blob = new Blob([req.response], {type: 'application/pdf'}); //this make the magic
var blobURL = URL.createObjectURL(blob);
iframe = document.createElement('iframe'); //load content in an iframe to print later
document.body.appendChild(iframe);
iframe.style.display = 'none';
iframe.src = blobURL;
iframe.onload = function() {
setTimeout(function() {
iframe.focus();
iframe.contentWindow.print();
}, 1);
};
};
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With