Pregunta

Tengo una página web con PDF integrado. Mi código se ve así:

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

Tengo este código JavaScript para imprimir mi 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();
    }
}

Cuando se ejecuta este código, el complemento Acrobat abre el conocido diálogo de impresión. Algo como esto:

PrintDialog

Dos preguntas:

  • ¿Cómo mejorar la forma de detectar que el PDF está cargado y listo para la impresión?
  • ¿Cómo evitar mostrar diálogo de impresión?

Un poco más de información sobre mi sistema:

OS: Windows XP

Navegador: Internet Explorer 7

Complemento PDF: Acrobat Reader 9

¿Fue útil?

Solución

No podrá imprimir en silencio con JavaScript antiguo. ¿Cómo le gustaría que su impresora comience a imprimir 100000000 páginas de All Black? No es algo bueno. Si desea imprimir en silencio y hacer que funcione solo para Internet Explorer, hay controles ActiveX que pueden hacerlo. Esto requiere una mayor configuración de seguridad para su página y para que sus usuarios realmente confíen en su sitio.

Otros consejos

Esto es posible en un entorno de confianza e 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();" />

Esto omitirá el cuadro de diálogo de impresión y enviará directamente a la impresora predeterminada.

Me pregunto si realmente necesita esperar antes de imprimir, ¿no lo maneja el trabajo de impresión para usted? Y realmente espero que ningún navegador moderno le permita (o cualquier sitio web) imprimir sin ese diálogo de confirmación (algunos navegadores antiguos solían hacerlo, hace mucho tiempo).

Puedes hacer esto en Firefox cambiando about:config. Agregar print.always_print_silent y establecerlo en true.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top