Com base nos comentários abaixo, ele não funciona mais em navegadores modernos.
Esta pergunta demonstra uma abordagem que pode ser útil para você: Impressão silenciosa de um PDF incorporado
Ele usa a <embed>
tag para incorporar o PDF ao documento:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%" />
Em seguida, você chama o .print()
método no elemento em Javascript quando o PDF é carregado:
function printDocument(documentId) {
var doc = document.getElementById(documentId);
//Wait until PDF is ready to print
if (typeof doc.print === 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
doc.print();
}
}
Você pode colocar o embed em um iframe oculto e imprimi-lo de lá, proporcionando uma experiência perfeita.