Сохранение строки base64 в формате PDF на стороне клиента с помощью JavaScript

Итак, вот моя проблема :У меня есть файл PDF в виде строки base64, которую я получаю с сервера. Я хотел бы использовать эту строку, чтобы либо отображать PDF-файл непосредственно в браузере, либо дать ему возможность «Сохранить как...» при нажатии на ссылку. Вот код, который я использую:

<!doctype>
<html>
<head>
   <title>jsPDF</title>
   <script type="text/javascript" src="../libs/base64.js"></script>
   <script type="text/javascript" src="../libs/sprintf.js"></script>
   <script type="text/javascript" src="../jspdf.js"></script>

       <script type="text/javascript">

        function demo1() {
            jsPDF.init();
            jsPDF.addPage();
            jsPDF.text(20, 20, 'Hello world!');
            jsPDF.text(20, 30, 'This is client-side Javascript, pumping out a PDF.');

            // Making Data URI
            var out = jsPDF.output();
            var url = 'data:application/pdf;base64,' + Base64.encode(out);

            document.location.href = url;
         }
    </script>
</head>
<body>

<a href="javascript:demo1()">Run Code</a>

</body>
</html>

Он отлично работает с Chrome и Safari. Firefox распознает PDF-файл, но не отображает его, поскольку FF требует присутствия расширений, но URI данных -в этом случае их не имеет. Причина, по которой я здесь настаиваю, заключается в том, что если хром и сафари заработают, то должно быть решение для FF и IE

. Я знаю, что есть несколько соответствующих вопросов по этому поводу, но не совсем точный, а теперь еще и немного старые. Я знаю, что обходным путем было бы создание PDF-файла на стороне сервера, но я хотел бы создать его на стороне клиента.

Итак, пожалуйста, умные люди, возможно ли это с помощью некоторых хаков или дополнительных плагинов для загрузки JS?

34
задан Kishan Patel 29 April 2019 в 14:38
поделиться