Тихая печать встроенного PDF файла
У меня есть веб-страница со встроенным PDF файлом. Мой код выглядит следующим образом:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%">
</embed>
У меня есть этот код javascript для печати моего PDF:
function printDocument(documentId) {
//Wait until PDF is ready to print
if (typeof document.getElementById(documentId).print == 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
var x = document.getElementById(documentId);
x.print();
}
}
Когда этот код выполняется, плагин Acrobat открывает хорошо известный диалог печати. Что-то вроде этого:
![PrintDialog]()
Два вопроса:
- Как улучшить способ обнаружения того, что PDF загружен и готов к печати?
- Как избежать отображения диалогового окна печати?
Немного больше информации о моей системе:
ОС: Windows XP
Браузер: Internet Explorer 7
PDF-плагин: Acrobat Reader 9
Ответы
Ответ 1
Вы не сможете печатать без использования обычного старого JavaScript. Как бы вы хотели, чтобы ваш принтер начал печатать 100000000 страниц всего черного. Нехорошо. Если вы хотите печатать тихо и работать только для Internet Explorer, есть элементы управления ActiveX, которые могут это сделать. Это требует более высоких настроек безопасности для вашей страницы и для ваших пользователей, которые действительно доверяют вашему сайту.
Ответ 2
Это возможно в надежной среде Intranet.
<object id="pdfDoc" style="position:absolute;z-index:-1;" name="pdfDoc" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="900px" height="100%">
<param name="SRC" value="yourdoc.pdf" />
</object>
<input type="button" ... onclick="pdfDoc.printAll();" />
Это приведет к обходу диалогового окна печати и отправке непосредственно на принтер по умолчанию.
Ответ 3
Интересно, действительно ли вам нужно подождать до печати - не будет ли для вас задание на печать? И я действительно надеюсь, что ни один современный браузер не позволит вам (или любому веб-сайту) печатать без этого диалогового окна подтверждения (некоторые старые браузеры использовали это, давным-давно).
Ответ 4
Вы можете сделать это в Firefox, изменив about:config
. Добавьте print.always_print_silent
и установите его на true
.