Я создаю приложение, работающее в Firefox на терминале на складе. Это приложение должно печатать PDF-файлы.Печать PDF в Firefox с помощью Javascript
Я нашел много вопросов и ответов о печати PDF с Javascript, но я не могу заставить его работать.
Это мой текущий код.
$(document).ready(function() {
$(document.body).append('<IFRAME id="pdfLabel" ... >');
$('iframe#pdfLabel').attr('src', 'testlabel.pdf');
$('iframe#pdfLabel').load(function() {
document.getElementById('pdfLabel').focus();
document.getElementById('pdfLabel').contentWindow.print();
});
});
С обычной страницей html в iFrame этот код работает безупречно. В PDF, PDF отображается в iFrame, но не печатается. Я пробовал печатать с помощью Firefox, встроенного в средство рендеринга PDF, и со встроенным считывателем Adobe Acrobat. Я также попытался
document.getElementById('pdfLabel').print();
Но что бросает TypeError: window.frames.pdfLabel.print is not a function
Поскольку вы используете селектор 'id', вам не нужно' iframe' в начале селектора ... просто используйте '$ (" # pdfLabel ")'. Можете ли вы поставить 'console.log ('here');' в '.load' функцию? Я знаю, что вы сказали, что это загружается, но просто для того, чтобы убедиться, что ваш код '.load' запущен. Кроме того, вам может потребоваться установить атрибут 'src' _after_, связывающий событие .load. – Ian
дать некоторое время для загрузки PDF. возможно, с помощью setTimeout – allenhwkim
@Ian '.load' работает, я проверил. Я установил атрибут 'src' после привязки события загрузки, но это не помогает. @bighostkim Пробовал, не помог. Спасибо вам за предложения. –