Откройте PDF в новом окне, распечатайте этот PDF и закройте окно. Как это сделать в JavaScript - PullRequest
1 голос
/ 01 ноября 2011

Откройте PDF в новом окне, распечатайте этот PDF и закройте окно.Как это сделать в JavaScript.Эти 3 шага должны быть выполнены в один клик.

Ответы [ 2 ]

1 голос
/ 19 октября 2015

Существует два сценария: загрузка pdf через запрос get или запрос по почте (форме); Мой сценарий обращается к ним, вызывая диалоговое окно печати, а когда диалоговое окно печати закрывается, окно закрывается.

Для запроса get этого должно быть достаточно:

function testprint(){
    var w = window.open(yourURL)
    w.focus()
    w.print()
    // Don't try to close it until you've give the window time to register the print dialog request
    setTimeout(function(){
        w.close() 
    }, 1000)
}

Пост немного сложнее. После того, как я некоторое время боролся с этой проблемой, я пришел к этому - он использует скрытый iframe; Я не мог заставить его работать с дополнительным окном. В результате вы можете скрыть iframe, чтобы пользователю даже не нужно было видеть другое окно. (Обратите внимание, что вы можете преобразовать решение get для использования iframe и избежать одновременного создания дополнительного окна.) Предполагается, что вы создали форму с помощью jQuery, а результатом публикации будет нужный вам PDF.

jQuery(document.body).append(form);
if (doPrint) {
    jQuery(document.body).append("<iframe style='display:none' id='doPrintId' name='doPrint'>");
    form.submit(function () {
        form.attr('target', 'doPrint');
    });
    var printWindow = document.getElementById('doPrintId');
    printWindow.onload = function(){
        printWindow.focus();
        printWindow.contentWindow.print();
        document.body.remove(printWindow);
    };

    form.submit();
} else {
    form.submit();
}

jQuery(document.body).remove(form);
1 голос
/ 01 ноября 2011

Извините, что сообщаю вам, что эти шаги не могут быть выполнены просто с использованием чистого JavaScript.Представьте, могут ли веб-сайты автоматически отправлять запросы на печать непосредственно пользователям принтеров.Вы посещаете вредоносный сайт, и у вас может закончиться тонер и / или бумага.Вам нужно будет установить в браузер клиента плагин, который будет выполнять фактическую печать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...