construyendo pdf de respuesta binaria de servicio web en javascript
antecedentes:
Este desafío de generar un archivo PDF de un archivo binario retrisado a través de una solicitud de AJ. La corriente binaria proporcionada consta del encabezado y contenido PDF. While the data-uri method works in some browsers, it fails in Internet Explorer 9 and Firefox.
The Issue:
The concern lies in finding a cross-browser solution that allows building a PDF file from the binary response without relying on editing the web-service Implementación.
SOLUCIÓN:
Para resolver este problema, se sugiere el siguiente enfoque:
aprovechando las blobs y descargar atributas:
al establecer el contenedor de la responsabilidad del xmlhtttttttttttttttttttttttttttttttttttttho ser recibido como un objeto Blob. Este blob representa el archivo PDF. Posteriormente, puede crear un enlace de descarga utilizando el método CreateObjectUrl para permitir a los usuarios descargar el pdf.para demostrar esta solución, se puede emplear el siguiente fragmento de código:
var request = new XMLHttpRequest();
request.open("GET", "/path/to/pdf", true);
request.responseType = "blob";
request.onload = function (e) {
if (this.status === 200) {
// `blob` response
console.log(this.response);
// create `objectURL` of `this.response` : `.pdf` as `Blob`
var file = window.URL.createObjectURL(this.response);
var a = document.createElement("a");
a.href = file;
a.download = this.response.name || "detailPDF";
document.body.appendChild(a);
a.click();
// remove `a` following `Save As` dialog,
// `window` regains `focus`
window.onfocus = function () {
document.body.removeChild(a)
}
};
};
request.send();
beneficios:
Este método ofrece las siguientes ventajas:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3