Запуск предварительного просмотра PDF в кодировке base64 из javascript
Я осмотрел stackoverflow, пытаясь найти способ сделать это некоторое время, и не могу найти подходящий ответ. Мне нужно иметь возможность загружать PDF-файл в новом окне или в iframe через строку в кодировке base64 и запускать предварительный просмотр сразу после загрузки. Я могу легко загрузить PDF, используя оба этих метода, но не могу заставить его правильно отобразить предварительный просмотр. Вот что я попробовал:
С помощьюembed
элемент в новом окне. призваниеwindow.print()
пусто даже после загрузки контента.Использование скрытого, динамически созданногоiframe
сsrc="data:application/pdf;base64,JVBERi0..."
и звонитmyFrame.contentWindow.print()
, Но это дает ошибку CORS. Я не уверен, почему, потому что я не загружаю новый домен через iframe, просто контент.Откройте новое окно только сiframe
элемент как тот в # 2 и вызывая печать на всем окне. Это также показывает пустую белую страницу.Откройте новое окно с данными URI и распечатайте его.window.open('data:application/pdf;base64,JVBERi0...').print();
, Это тоже не работает, так как даже не показывает предварительный просмотр. Я также пытался отложить это сsetTimeout
но это тоже ничего не делает.На данный момент я очень озадачен тем, почему ничего из этого не работает, особенно потому, что в Chrome он отображает пользовательские строки меню следующим образом:
И если я щёлкну по значку печати, то предварительный просмотр будет идеальным. Что бы Chrome ни делал, когда я нажимаю эту кнопку, это именно то, чего я хочу достичь. Есть ли способ активировать эту функцию? Или есть другой способ сделать то, что я хочу? И чтобы уточнить, мне нужно только это для работы в Chrome, мне не нужно беспокоиться о других браузерах.