Avalados por :

Como validar e carregar um PDF no SAP UI5 usando sap.m.PDFViewer

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...
Tenho um conteúdo de PDF codificado em base64 e quero visualizá-lo usando sap.m.PDFViwer. Como o PDFViewer aceita apenas URI como origem para exibir o PDF:



Portanto, primeiro devo criar uma URL de blob ou uma URL de dados para o meu conteúdo de PDF.

        var base64EncodedPDF = "JVBERi0xLjcNCiW..."; // a string codificada
        var decodedPdfContent = atob(base64EncodedPDF);
        var byteArray = new Uint8Array(decodedPdfContent.length);
        for (var i=0; i

No entanto, quando uso essa URL de blob como origem do meu PDFViewer, meu PDF não pode ser carregado de forma alguma, embora minha URL de blob seja acessível.

Finalmente descubro que o UI5 validará a URL do PDF após renderizar a caixa de diálogo do PDFViewer, apenas se minha URL de blob estiver na lista branca do UI5, minha URL pode ser considerada validada.

O que faço é o seguinte:

        if (!this._PDFViewer){
            this._PDFViewer = new sap.m.PDFViewer({
                width: "auto",
                source: _pdfurl // minha URL de blob
            });
            jQuery.sap.addUrlWhitelist("blob"); // registrar a URL de blob na lista branca
        }
        this._PDFViewer.downloadPDF = function(){
            File.save(
                byteArray.buffer,
                "Hello_UI5",
                "pdf",
                "application/pdf"
            );
        };
        this._PDFViewer.open();
    

O método addUrlWhitelist possui quatro parâmetros.
jQuery.sap.addUrlWhitelist(protocol, host, port, path);

Após adicionar minha URL de blob à lista branca, o PDF pode ser carregado com sucesso!

O que acontece no UI5?

linha 269: PDFViewer tenta validar a URL de origem



No arquivo jQuery.sap.encoder.js, o método validateUrl será executado:



E posso ver a partir da linha 504 (ainda no método validateUrl) por que minha URL de blob agora é validada após adicionar addUrlWhiteList, os protocolos, hosts, portas e caminhos seriam verificados:



O PDFViewer carrega meu PDF da seguinte maneira:

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?