IpsitaMishra Ответов: 3

Ошибка при печати pdf - файла из iframe.


Я должен показать pdf-файл на веб-странице с помощью Iframe,на событии щелчка кнопки.Вот код, который я написал
//print pdf file
    $("#btnPrint").click(function () {      
        window.frames["printf"].focus();
        window.frames["printf"].print();
    });

Это прекрасно работает в Chrome,где, как и в IE и FF, я получаю следующие ошибки
IE:-Error:SCRIPT65535: Invalid calling object

FF:-Error: Permission denied to access property 'print'

Здесь я не использую никаких плагинов для отображения Pdf-файла.

3 Ответов

Рейтинг:
2

lixinwang

Я использую обходной путь, надеюсь, что кто-то найдет его полезным:
функция WindowPrint() {
var iframe = document.frames ? window.frames.frames["printFileFrame"] :document.getElementById("printFileFrame");
var ifWin = iframe.contentWindow || iframe;
пробовать {
ifwin выступает.фокус();
ifwin выступает.печать();
}
улов(е) {
окна.напечатать(ложь);
//или когда вы получаете недопустимую ошибку вызывающего объекта для IE9 и выше
//установка браузера в режим совместимости IE8 будет работать
}

возвращать false;

}


Babinlal

Спасибо @lixinwang.. Он отлично работает для файлов изображений.. но теперь я печатаю PDF файлы :(

Рейтинг:
18

thatraja

Кто-то поднял жучок билет на Браузер Firefox[^], так что вам придется подождать.


IpsitaMishra

@thatraja спасибо за информацию :)

Рейтинг:
0

vasper

Проблема заключается в зрителе. Встроенный просмотрщик вызывает проблему перекрестного происхождения. Попробуйте создать свой собственный просмотрщик. Это решит проблему. например, отсюда: [удалено]

Или если вам нужен полнофункциональный просмотрщик, вы можете использовать Mozilla one отсюда: http://mozilla.github.io/pdf.js/web/viewer.html (для этого вам нужно будет скачать последнюю версию pdf.js и еще pdf.worker.js реализация). Я только что сделал это для проекта на работе, и это работает как заклинание.


OriginalGriff

Хотя я аплодирую вашему стремлению помогать людям, это хорошая идея придерживаться новых вопросов, а не 6-летних. После такого количества времени маловероятно, что оригинальный плакат вообще заинтересован в проблеме больше!
Ответы на старые вопросы можно рассматривать как охоту за репостами, которая является формой злоупотребления сайтом. Более триггерные счастливые среди нас начнут процесс запрета вас с сайта, если вы не будете осторожны.

А размещение ссылок в блогах на старые вопросы? Это определенно поднимает некоторые флаги и повышает шансы на то, что с вами будут обращаться как со спамером.

Придерживайтесь новых вопросов и "безопасных" ссылок, и все будет в порядке.

vasper

Конечно. Сделаем в следующий раз. Не заметил, что он такой старый.