Ler um arquivo .PDF de um diretório e exibir na tela

Boa tarde,

Estou precisando da ajuda dos senhores, preciso ler um arquivo PDF que está na maquina do cliente em por exemplo C:PDF\arquivo1.pdf e exibir ele na tela.
Vi algumas soluções na internet e implementei a minha própria porém usando o input file. No entanto estou precisando que não seja necessário o cliente selecionar esse arquivo, eu passe o diretório por exemplo C:PDF(var).pdf e ele vá busque o arquivo. alguém poderia me dar uma força de como posso fazer isso? segue abaixo o código que já fiz

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
    <script src="https://mozilla.github.io/pdf.js/build/pdf.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            $("#pdfInp").change(function () {
                if (this.files && this.files[0]) {
                    var reader = new FileReader();
                    reader.onload = function (e) {
                        showInCanvas(e.target.result);
                    }
                    reader.readAsDataURL(this.files[0]);
                }
            });
 
            function convertDataURIToBinary(dataURI) {
                var BASE64_MARKER = ';base64,';
                var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
                var base64 = dataURI.substring(base64Index);
                var raw = window.atob(base64);
                var rawLength = raw.length;
                var array = new Uint8Array(new ArrayBuffer(rawLength));
 
                for (i = 0; i < rawLength; i++) {
                    array[i] = raw.charCodeAt(i);
                }
                return array;
            }
 
            function showInCanvas(url) {
                // See README for overview
                'use strict';
                // Fetch the PDF document from the URL using promises
                var pdfAsArray = convertDataURIToBinary(url);
                PDFJS.getDocument(pdfAsArray).then(function (pdf) {
                    // Using promise to fetch the page
                    pdf.getPage(1).then(function (page) {
                        var scale = 1.5;
                        var viewport = page.getViewport(scale);
                        // Prepare canvas using PDF page dimensions
                        var canvas = document.getElementById('the-canvas');
                        var context = canvas.getContext('2d');
                        canvas.height = viewport.height;
                        canvas.width = viewport.width;
                        // Render PDF page into canvas context
                        var renderContext = {
                            canvasContext: context,
                            viewport: viewport
                        };
                        page.render(renderContext);
                    });
                });
            }
        });
    </script>
</head>
<body>
    <form id="form1" >
        <p>
            <input type='file' id="pdfInp" />
            <canvas id="the-canvas" style="border:1px solid black"></canvas>
        </p>
    </form>
</body>
</html>

desde já obrigado.

Att

GG

No caso o JavaScript não tem acesso a sua máquina, ou seja, você não consegue passar um caminho “C:/boleto.pdf” para ele e ler, evitando acessos e coisas maliciosas na máquina do cliente, como colocar um script para ser executa ou coisa do tipo.
Você pode tentar utilizar algo como isso, mas não é implementado por todos browsers, se não me engano.

2 curtidas

Valeu, vou dar uma olhada.