En una aplicación web, ¿es posible forzar la impresión de un archivo PDF en el cliente? Si el navegador está configurado para abrir el PDF dentro de la ventana, creo que la llamada a window.print() funcionará, pero algunos navegadores (como el mío) están configurados para abrir el PDF de forma externa.Cómo imprimir un PDF desde el navegador
Respuesta
La forma en que lo hace google do es incorporando JavaScript en el PDF que le dice a Acrobat Reader o cualquier otro lector compatible que lo imprima.
Necesitará un kit de herramientas PDF para hacer esto con un PDF aleatorio.
¿Quiere decir que quiere forzar que el archivo se envíe a una impresora? ¿Estás pensando en la Ley de las consecuencias imprevistas: el dispositivo del usuario no está conectado a una impresora? Podría ser un BlackBerry, podría ser una computadora portátil en wi-fi. ¿Qué sucede si el usuario no quiere que vaya a la impresora predeterminada?
Mi única impresora en casa es PDFCreator. – Kibbee
Spot on. Cada vez que hago este tipo de preguntas y luego sigo adelante y lo implemento, resulta que realmente debería haber deseado que alguien señalara lo que señaló DOK. –
Sí, pero su jefe, que sabe que solo diez empleados en su oficina usarán esta página web, y sabe que tienen impresoras, se desconcertará por el hecho de que puede hacer que una computadora haga casi cualquier cosa, pero no puede hacer abre un diálogo de impresión. – PeterAllenWebb
puede establecer un encabezado http para application/pdf y luego forzar una nueva ventana abierta con javascript e imprimir de esa manera. pero, ¿quién realmente haría eso? Quiero decir ahora.
<html>
<script language="javascript">
timerID = setTimeout("exPDF.print();", 1000);
</script>
<body>
<object id="exPDF" type="application/pdf" data="111.pdf" width="100%" height="500"/>
</body>
</html>
Eso es interesante. Gracias –
Esto no funciona en un Firefox 9 con el plugin Adobe Reader (en Ubuntu). ('exPDF.print no es una función'). ¿Dónde conseguiste que funcionara? –
Paulo, exPDF es la ID del artículo que está imprimiendo en PDF. – Jared
de manera similar a la sugerencia de Taeyoung puede utilizar un iframe para hacer que el PDF y luego usar contentWindow.print();
Al igual que para la solución de Taeyoung, esto no funciona en un Firefox 9 con el plugin Adobe Reader (en Ubuntu). ('exPDF.print no es una función'). ¿Dónde conseguiste que funcionara? –
Creo que esto solo funciona con webkit. Los otros navegadores simplemente lo descargarán. –
En realidad, Firefox muestra el PDF en el iframe e ignora la llamada al método (el mensaje de error está visible en la consola JS en Firebug). –
No puede imprimir un documento PDF directamente desde el navegador usando Javascript. La función de Javascript window.print() utiliza la función de impresión del navegador y esto no es lo que necesita. Puede lograr su objetivo al comenzar la impresión a través de Java Web Start. Coloque su documento PDF directamente en el jnlp para que pueda ejecutar un programa Java que reciba el documento en formato PDF como argumento. Ahora se está ejecutando en el sistema y ya no está en el navegador, por lo que puede interactuar directamente con el controlador de impresión a través de la API JAVA. Esto parece bastante simple, pero realmente no es porque la API de impresión JAVA no acepte un archivo como entrada, sino una estructura de datos particular que implementa la interfaz ava.awt.print.Pageable.
Existe un servicio web en www.pdfprint.it que hace todo el trabajo por usted. Aquí un fragmento tomado de la documentación oficial.
<?php
// 1. GET the jnlp file with curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.pdfprint.it/printPdf?auth=XXXX");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //return the transfer as a string
$jnlp = curl_exec($ch);
curl_close($ch);
$pdfDoc ="example.pdf";
//2. put in the jnlp your PDF document base64 encoded
$jnlp = str_replace("####", base64_encode(file_get_contents($pdfDoc)),$jnlp);
//3. echo the jnlp file
header('Content-type: application/x-java-jnlp-file');
echo $jnlp;
Sólo es necesario para obtener el archivo jnlp, poner en su documento PDF y enviar el jnlp al navegador. El programa JAVA que ejecuta la impresión se descargará directamente desde el servicio web. También puede configurar algunas opciones de impresión como copias, lados, y así sucesivamente
puede utilizar la biblioteca simple increíble printjs "http://printjs.crabbly.com" se tarda archivo PDF e imprimirlo sin mostrar diálogo de impresión si es necesario, una forma sencilla de hacerlo a continuación:
<button type="button" onclick="printJS('docs/printjs.pdf')">
Print PDF
</button>
- 1. Imprimir desde el navegador javascript?
- 2. Cómo imprimir documentos PDF desde el Servicio de Windows
- 3. Imprimir PDF desde ASP.Net sin previa vista
- 4. Delphi: ¿Cómo imprimir un PDF sin mostrarlo?
- 5. Abrir un PDF en el navegador en lugar de descargarlo
- 6. ¿Cómo imprimir un archivo PDF en una aplicación Java?
- 7. ¿Cómo abrir un archivo PDF generado en el navegador?
- 8. ¿Cómo iniciar una aplicación desde un navegador?
- 9. Imprimir en PDF en un bucle for
- 10. Android - ¿Cómo imprimir desde un dispositivo Android?
- 11. Abrir pdf en el complemento del navegador
- 12. ¿La mayoría de los navegadores realizan varias solicitudes HTTP al mostrar un PDF desde el navegador?
- 13. ¿Cómo imprimir texto desde textarea?
- 14. Establecer PDF para imprimir sin escalar
- 15. ¿Cómo generar dinámicamente un pdf desde el apéndice de Google?
- 16. Enviando un SMS desde el navegador móvil
- 17. Cómo imprimir gráficos R en varias páginas de un PDF y varios PDF?
- 18. Imprimir desde Chrome no está centrado
- 19. Imprimir archivo PDF en iphone o ipad
- 20. ¿Cómo generar programáticamente un PDF desde cualquier documento en OSX?
- 21. ¿Cómo subir un archivo (archivo adjunto) desde el navegador?
- 22. Cómo imprimir un valor NSInteger desde un NSManagedObject utilizando NSLog
- 23. Erlang shell desde un navegador?
- 24. Cómo editar un pdf en el navegador y guardarlo en el servidor
- 25. No se puede imprimir gráficos ggplot pdf
- 26. Detectar compatibilidad con imágenes de fondo y colores de fondo al imprimir desde el navegador
- 27. insertando blob en sqlite desde el navegador safari usando html5
- 28. ¿Cómo puedo personalizar la salida del navegador para imprimir/imprimir vista previa?
- 29. Ejecutar un archivo JavaScript directamente desde el navegador
- 30. ¿Cómo se establece el nombre del archivo al transmitir un PDF en un navegador?
no es necesario kit de herramientas PDF si se puede usar iTextSharp. Aquí hay un enlace a una página que le dice cómo agregar javascript al PDF usando iTextSharp que imprimirá el pdf. http://itextsharp.sourceforge.net/tutorial/ch11.html – Dave
iTextSharp es un kit de herramientas PDF. –
checkout FPDF para PHP y este complemento para FPDF: http://www.fpdf.de/downloads/addons/36/ – Brenden