"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como gerar um PDF a partir de uma resposta binária de serviço na Web em JavaScript entre os navegadores?

Como gerar um PDF a partir de uma resposta binária de serviço na Web em JavaScript entre os navegadores?

Postado em 2025-03-22
Navegar:477

How to Generate a PDF from a Binary Web-Service Response in JavaScript Across Browsers?

Criando PDF a partir da resposta binária do serviço na web em javascript

Background:

Esta pergunta aborda o desafio de um generativo por PDF. O fluxo binário fornecido consiste no cabeçalho e no conteúdo do PDF. Enquanto o método de dados-URI funciona em alguns navegadores, ele falha no Internet Explorer 9 e Firefox. Implementation.

solução:

Para resolver esse problema, a seguinte abordagem é sugerida:

alavancando blobs e download atribuições:

Benefits:

This method offers the following advantages:

Compatibility with all major browsers, including IE9, Firefox, Opera, Chrome, and Safari

Avoids the deficiencies encountered with the data-uri A abordagem em alguns navegadores

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();
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3