Pergunta

Eu tenho uma página da web com PDF incorporado. Meu código se parece com o seguinte:

<embed
    type="application/pdf"
    src="path_to_pdf_document.pdf"
    id="pdfDocument"
    width="100%"
    height="100%">
</embed>

Eu tenho esse código JavaScript para imprimir meu 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();
    }
}

Quando este código é executado plug-in Acrobat abre a caixa de impressão bem conhecida. Algo assim:

PrintDialog

Duas questões:

  • Como melhorar a maneira de detectar que o PDF está carregado e pronto para impressão?
  • Como evitar mostrar a caixa de diálogo Imprimir?

Um pouco mais de informação sobre o meu sistema:

OS: Windows XP

Navegador: Internet Explorer 7

Plugin pdf: Leitor de Acrobat 9

Foi útil?

Solução

Você não poderá imprimir silenciosamente com JavaScript antigo e simples. Como você gostaria que sua impressora comece a imprimir 100000000 páginas de todos os pretos. Não é uma coisa boa. Se você deseja imprimir silenciosamente e fazê -lo funcionar apenas para o Internet Explorer, existem controles ActiveX por aí que podem fazê -lo. Isso requer configurações de segurança mais altas para sua página e para que seus usuários realmente confiem em seu site.

Outras dicas

This is possible in a trusted, Intranet environment.

<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();" />

This will bypass the print dialog and send directly to the default printer.

I wonder if you actually need to wait before printing -- won't the print job handle that for you? And I truly hope no modern browser will allow you (or any website for that matter) to print without that confirmation dialog (some old browsers used to do that, a long time ago).

You can do this in Firefox by changing about:config. Add print.always_print_silent and set it to true.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top