react pdfjs page ejemplo dist javascript firefox pdf

pdfjs - Firefox 19 imprime PDF desde JavaScript



pdf.js npm (3)

Tengo un botón "Imprimir" que invoca el siguiente JavaScript

window.frames.myPdfFrame.print();

donde "myPdfFrame" se refiere a un iframe con un PDF para el src.

En Chrome y Firefox 18 (y más abajo) esto abre el cuadro de diálogo de impresión como se esperaba, pero a partir de Firefox 19 recibo el siguiente error

Error: Permission denied to access property ''print''

Supongo que esto está relacionado con el uso del visor de PDF incorporado lanzado con Firefox 19 en lugar del complemento de Adobe. El uso del icono de impresión en la barra de herramientas del complemento PDF funciona como se esperaba.

¿Hay alguna forma de invocar el diálogo de impresión en un PDF en línea en Firefox 19 desde Javascript?


En las versiones recientes de Firefox (desde 19), tiene que deshabilitar el visor de PDF nativo con errores (pdf.js) en about:config . Establezca la propiedad pdfjs.disabled en true y verá que aparece la ventana de impresión usando su script.

Si se está iniciando una descarga, configure la propiedad plugin.disable_full_page_plugin_for_types en application/pdf .


Por favor intente el siguiente código, está funcionando:

window.frames.myPdfFrame.focus(); window.print();


jsfiddle.net/hytcX/3 provista, con Firefox 22 y NoScript . Curiosamente, cuando abrí el violín por primera vez, el contenido del iframe fue bloqueado por NoScript, ¡pero el diálogo de impresión apareció rápidamente! Hice clic en "Aceptar" y obtuve una barra de tareas que decía que el documento about.blank se había enviado a la impresora. Efectivamente, revisé la impresora y escupió una bonita página en blanco. Inútil...

Ahora, después de decirle a NoScript que "permita temporalmente" el dominio del PDF (irs.gov), reproduzco el error:

Error: Permission denied to access property ''print''

Esta otra pregunta me hizo preguntarme si era un problema de la misma política de origen . Así que lo probé en mi propio servidor web, con un documento PDF alojado en la misma máquina. Y ... no hay dados!

Luego probé mi página de prueba en IE 9 y Chrome. Ambos muestran el diálogo de impresión, pero cuando imprimo el documento, en el caso de IE 9, en realidad se imprime alrededor: en blanco, y Chrome imprime un rectángulo gris que dice "Cargando" ... parece que está imprimiendo toda la página , no solo el documento en el iframe.

Entonces, estoy de acuerdo con Jason Sperske en que esto no parece posible.

ACTUALIZACIÓN : esta respuesta ofrece una solución que "simplemente funciona", pero solo para archivos PHP generados por la biblioteca Fpdf ...