Documentos em PDF para exibição dinâmica via API

Eu tenho vários pdfs que estão armazenados na área de documentos do Fluig.

Eu gostaria de, dinamicamente, via API, localizar um deles e, mediante um evento qualquer no jQuery, por exemplo, eu preencher uma elemento html do tipo iframe com o documento selecionado. Isto eu sei fazer.

Mas este preenchimento deverá renderizar o documento como faz o Fluig Viewer, mas não tem sido isto que acontece.

Do jeito que tenho feito, eu localizo dinamicamente o documento, mas, quando preencho o iframe com a URL apontando para o ID do documento, parece-me que o Fluig inteiro com o visualizador entra no iframe e uma nova página é aberta, como um redirecionamento, 'matando' minha página e abrindo outra com o documento.

Eu gostaria que o PDF ficasse renderizado dentro da widget a qual se destina, como faz aquela Widget pronta.

Eu até consegui renderizar perfeitamente o arquivo PDF dentro de um iframe, numa widget com o preenchimento da RL manualmente, mas somente se a URL apontar para um caminho absoluto num outro servidor que esteja com o servidor HTTP ativo, e que os documentos pdfs estejam sob a pasta default do servidor.

Se dentro do caminho na Widget apontar para a URL que tem o documento interno, não dá bom resultado, como dito.

Há como fazer isto?

Pode ser uma alternativa

Você tentou dar um "get" no teu documento e tratar ele como blob?

Você tem como criar dinamicamente uma URL apontando para um blob assim:


var xhr = new XMLHttpRequest();
    xhr.open('GET', "<<Tua URL>>", true);
    xhr.responseType = 'arraybuffer';
    xhr.onload = function() {
        if (this.status == 200) {
            var buf = this.response;
            var blob = new Blob([new Uint8Array(buf)]);
            var url = window.URL.createObjectURL(blob);

            //UTILIZA A URL COMO QUISER

        }

@carlos, obrigado. Me parece uma ótima dica. Não posso testar agora, mas o farei o quanto antes. Estou reinstalando meu ambiente.

Certo, se der certo marca aí como “Resposta Util”? Vlw!

Caro @carlos, não deu certo para exibição num Iframe. Aliás, em Iframe não estou conseguindo pôr nada. Meu código, adaptado ficou assim:

jQuery.get(‘/api/public/2.0/documents/getDownloadURL/12’,function (response) {
var blob = new Blob([new Uint8Array(response.content)]);
var url = window.URL.createObjectURL(blob);
jQuery(“#idIfrBiblioExibicao”).prop(“src”,url);
});//get
Vejo a url no console do Chrome e, se eu copiá-la e colá-la numa outra aba do navegador, renderiza sem problemas, mas no iframe, não.

Mas você precisa fazer isso via iFrame?
Não pode fazer só uma div ou um modal?

@Carlos, já tentei de tudo. No fim, no fim, qualquer coisa que eu faça para tentar exibir o documento a partir da URL tem a mensagem de que recursos locais não são permitidos.

Resolução do que eu preciso através do amigo Luis Postal

Não precisei de fazer nenhuma inserção em elemento html, como eu havia pensado fazer com o iframe.