У меня есть файл PDF, и я пытаюсь распечатать его через Javascript. Я пробовал этот трюк: Тихая печать встроенного PDF, однако функция печати никогда не становится доступной, она всегда undefined.
Я пробовал трюк Iframe с помощью этого кода:
function printPDF() {
if(document.getElementById("pdfDocument").contentWindow.document.readyState === "complete") {
document.getElementById("pdfDocument").focus();
document.getElementById("pdfDocument").contentWindow.print();
} else {
setInterval(printPDF(), 1000);
}
}
(pdfDocument - это идентификатор iframe). Это открывает диалог печати, но печатает пустую страницу. Мне бы очень хотелось, чтобы метод embed tag работал. Но почему функция печати никогда не становится доступной?
Большинство сообщений на эту тему довольно старые. Каков наилучший способ HTML5/jQuery? (или просто регулярный JS в этой точке)
EDIT:
вот код JS для тега embed:
function printPDF() {
alert(document.getElementById("pdfDocument").print);
//Wait until PDF is ready to print
if (typeof document.getElementById("pdfDocument").print == 'undefined') {
setTimeout(function(){printPDF();}, 1000);
} else {
var x = document.getElementById("pdfDocument");
x.print();
}
}
Это постоянно меняет "undefined" каждую секунду. Опция "Печать" недоступна. Любые идеи?