2013-02-26 5 views
2

Я создаю приложение, работающее в 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

+1

Поскольку вы используете селектор 'id', вам не нужно' iframe' в начале селектора ... просто используйте '$ (" # pdfLabel ")'. Можете ли вы поставить 'console.log ('here');' в '.load' функцию? Я знаю, что вы сказали, что это загружается, но просто для того, чтобы убедиться, что ваш код '.load' запущен. Кроме того, вам может потребоваться установить атрибут 'src' _after_, связывающий событие .load. – Ian

+1

дать некоторое время для загрузки PDF. возможно, с помощью setTimeout – allenhwkim

+0

@Ian '.load' работает, я проверил. Я установил атрибут 'src' после привязки события загрузки, но это не помогает. @bighostkim Пробовал, не помог. Спасибо вам за предложения. –

ответ

5

. , К сожалению, версия PDF.js, поставляемая с Firefox 19, не поддерживает встроенный JavaScript для самостоятельной печати документа, а также не позволяет вам получать доступ к чему-либо внутри окна PDF (включая метод печати).

. , They are aware of the problem, и исправление планируется отправить с версией 21 Firefox.

+0

Ошибка, на которую вы ссылаетесь, отмечена как фиксированная, однако вы по-прежнему не можете печатать в Firefox (начиная с версии v39) с javascript, по крайней мере, насколько мне известно. – L84

+0

@ Lynda, вы пробовали оба варианта (самопечатать с JavaScript и self.print() JS-фрагмент?). В последнее время у меня не было необходимости проверять PDF-файлы и самотестирование, но они действительно отправили патч. Возможно, кто-то должен снова открыть проблему или открыть новую. –

+0

[Они знают об этом] (https://github.com/mozilla/pdf.js/issues/5397). Эта ссылка является лишь одним из примеров многих страниц, которые я нашел на этом. Однако патч был отправлен, как вы сказали, из того, что я прочитал, что не решает всех проблем. – L84

Смежные вопросы