Foros del Web » Programando para Internet » PHP »

Imprimir archivo PDF existente

Estas en el tema de Imprimir archivo PDF existente en el foro de PHP en Foros del Web. Hola a todos, A ver si alguien me puede ayudar a imprimir un PDF que ya existe en disco. El PDF ya está creado por ...
  #1 (permalink)  
Antiguo 09/12/2011, 02:52
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Imprimir archivo PDF existente

Hola a todos,

A ver si alguien me puede ayudar a imprimir un PDF que ya existe en disco.

El PDF ya está creado por otra aplicación, no lo quiero crear yo, sólo quiero poder sacarlo por la impresora que tengo conectada en red.

Además necesito poder imprimir a doble cara y no sé cómo hacerlo.

He probado a instalar ghostcript y gsview, y hacer:

<?php

shell_exec("C:\\Archivos de programa\\Ghostgum\\gsview\\gsprint.exe\" -printer \"NOMBRE_IMPRESORA\" -duplex_vertical -from 1 -to 1 \"EXAMPLE.pdf\" ");

Pero no imprime nada. Si esto mismo lo lanzo desde línea de comandos funciona perfectamente. ¿Será tema de permisos? He probado mil cosas, googleando, ... y nada.

Gracias de antemano.

Saludos!
  #2 (permalink)  
Antiguo 09/12/2011, 02:54
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Pregunta tonta...

el servidor php lo tienes en local? ;)
PD: Prueba a poner la ruta completa al archivo PDF
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 09/12/2011, 02:58
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Pregunta tonta...

el servidor php lo tienes en local? ;)
PD: Prueba a poner la ruta completa al archivo PDF
Lo primero, gracias por responder tan rápido!

Las pruebas que estoy haciendo sí, desarrollo en LOCAL, pero a futuro estará colgado en otro servidor.

Ya he probado con rutas completas tanto para el gsprint.exe como para el fichero que quiero imprimir, y nada, no imprime.

Gracias de todos modos.
  #4 (permalink)  
Antiguo 09/12/2011, 03:01
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Ten en cuenta, que cuando lo subas al servidor, no funcionará (a no ser que quieras imprimir en una impresora conectada al servidor!).

PHP, por si solo, no puede imprimir "en tu impresora" si no está en local xD

Edit: prueba esto:
Código PHP:
$salida shell_exec("C:\\Archivos de programa\\Ghostgum\\gsview\\gsprint.exe\" -printer \"NOMBRE_IMPRESORA\" -duplex_vertical -from 1 -to 1 \"EXAMPLE.pdf\" ");
echo 
"Salida: <pre>$salida</pre>"
__________________
>> Eleazan's Source
>> @Eleazan
  #5 (permalink)  
Antiguo 09/12/2011, 03:09
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Ten en cuenta, que cuando lo subas al servidor, no funcionará (a no ser que quieras imprimir en una impresora conectada al servidor!).

PHP, por si solo, no puede imprimir "en tu impresora" si no está en local xD

Edit: prueba esto:
Código PHP:
$salida shell_exec("C:\\Archivos de programa\\Ghostgum\\gsview\\gsprint.exe\" -printer \"NOMBRE_IMPRESORA\" -duplex_vertical -from 1 -to 1 \"EXAMPLE.pdf\" ");
echo 
"Salida: <pre>$salida</pre>"
Resultado:

"Salida: "

Esto es lo que me pasa, que no tengo ni error, ni OK, ni nada. Bueno, el tema de la impresora no pasa nada, porque siempre puedo conectar la impresora al servidor y llamarla, no?

Pero la llamada no me dice nada, no sé. También he probado a meterlo en un .bat y llamarlo con shell_exec y nada. Llamo a otros programas y funciona, pero a la hora de imprimir nada de nada.
  #6 (permalink)  
Antiguo 09/12/2011, 03:33
 
Fecha de Ingreso: marzo-2003
Ubicación: Gandia, Valencia, España
Mensajes: 55
Antigüedad: 21 años, 1 mes
Puntos: 3
Respuesta: Imprimir archivo PDF existente

Yo hace tiempo pude hacerlo haciendo que el enlace a imprimir era un enlace a un archivo ".bat" de MS-DOS -El cual evidentemente se tenía que abrir/ejecutar-. creo que tube que jugar con los "Sitios de confianza" en Windows.

Pero como digo hace mucho tiempo y era con archivos de texto sobre una impresora de agujas. Ya nos cuentas el resultado
__________________
Sueño luego existo
  #7 (permalink)  
Antiguo 09/12/2011, 03:45
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por macius Ver Mensaje
Yo hace tiempo pude hacerlo haciendo que el enlace a imprimir era un enlace a un archivo ".bat" de MS-DOS -El cual evidentemente se tenía que abrir/ejecutar-. creo que tube que jugar con los "Sitios de confianza" en Windows.

Pero como digo hace mucho tiempo y era con archivos de texto sobre una impresora de agujas. Ya nos cuentas el resultado

Pero para esto el cliente/usuario tendría que tener instalado el ghostscript, gsview, y/o acceso al servidor de producción... no sé... no hay otra forma?

Gracias de todas formas.
  #8 (permalink)  
Antiguo 09/12/2011, 03:59
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por BUZZHACKER Ver Mensaje
Resultado:

"Salida: "

Esto es lo que me pasa, que no tengo ni error, ni OK, ni nada. Bueno, el tema de la impresora no pasa nada, porque siempre puedo conectar la impresora al servidor y llamarla, no?

Pero la llamada no me dice nada, no sé. También he probado a meterlo en un .bat y llamarlo con shell_exec y nada. Llamo a otros programas y funciona, pero a la hora de imprimir nada de nada.
Pregunta: cuando lo ejecutas por consola, ¿dice algo gsprint?
Si da error gsprint, ¿dice algo? xD

Si usas exec en vez de shell_exec, cambia mucho?
__________________
>> Eleazan's Source
>> @Eleazan
  #9 (permalink)  
Antiguo 09/12/2011, 04:38
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Pregunta: cuando lo ejecutas por consola, ¿dice algo gsprint?
Si da error gsprint, ¿dice algo? xD

Si usas exec en vez de shell_exec, cambia mucho?
Cuando lo ejecuto por consola se lanza gsprint y funciona perfectamente.

He probado shell_Exec, exec, new COM("WScript.Shell"), .... y nada.

¿Alguna idea?

Gracias!
  #10 (permalink)  
Antiguo 09/12/2011, 05:33
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Si ejecutas "dir", en vez de eso... ¿lo ejecuta? :)

No sé donde puede estar el fallo :(
__________________
>> Eleazan's Source
>> @Eleazan
  #11 (permalink)  
Antiguo 09/12/2011, 05:35
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Si ejecutas "dir", en vez de eso... ¿lo ejecuta? :)

No sé donde puede estar el fallo :(
sip
  #12 (permalink)  
Antiguo 09/12/2011, 05:37
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Prueba esto

Código PHP:
$cmd escapeshellcmd('C:\Archivos de programa\Ghostgum\gsview\gsprint.exe -printer "NOMBRE_IMPRESORA" -duplex_vertical -from 1 -to 1 "C:\files\EXAMPLE.pdf" ');
$salida shell_exec($cmd);
echo 
"Salida: <pre>$salida</pre>"
Q creo q te sobraba una " después de gsprint.exe ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #13 (permalink)  
Antiguo 09/12/2011, 05:47
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Prueba esto

Código PHP:
$cmd escapeshellcmd('C:\Archivos de programa\Ghostgum\gsview\gsprint.exe -printer "NOMBRE_IMPRESORA" -duplex_vertical -from 1 -to 1 "C:\files\EXAMPLE.pdf" ');
$salida shell_exec($cmd);
echo 
"Salida: <pre>$salida</pre>"
Q creo q te sobraba una " después de gsprint.exe ;)
Nada. No funciona.

No lo entiendo. He leído algo por ahí de que el usuario que ejecuta el PHP puede que no encuentre la impresora... no sé. Algo del usuario SYSTEM. A alguien le suena?
  #14 (permalink)  
Antiguo 09/12/2011, 06:00
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Última prueba :$

Imprime.bat (Crealo en C:\Windows por ejemplo!)
Código:
@echo off
C:\Archivos de programa\Ghostgum\gsview\gsprint.exe -printer "NOMBRE_IMPRESORA" -duplex_vertical -from 1 -to 1 "C:\files\EXAMPLE.pdf"
Y en el php

Código PHP:
$salida shell_exec('Imprime.bat'); 
Nota: He leido en php.net algo relativo a que en windows sólo dejaba ejecutar lo q estuviera en el PATH, de ahí lo de guardar el bat en c:\windows ( http://es.php.net/manual/es/language...tion.php#29479 )
__________________
>> Eleazan's Source
>> @Eleazan
  #15 (permalink)  
Antiguo 09/12/2011, 06:32
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Última prueba :$

Imprime.bat (Crealo en C:\Windows por ejemplo!)
Código:
@echo off
C:\Archivos de programa\Ghostgum\gsview\gsprint.exe -printer "NOMBRE_IMPRESORA" -duplex_vertical -from 1 -to 1 "C:\files\EXAMPLE.pdf"
Y en el php

Código PHP:
$salida shell_exec('Imprime.bat'); 
Nota: He leido en php.net algo relativo a que en windows sólo dejaba ejecutar lo q estuviera en el PATH, de ahí lo de guardar el bat en c:\windows ( [url]http://es.php.net/manual/es/language.operators.execution.php#29479[/url] )

Noticias!!

No está resuelto del todo, pero bueno, la cosa cambia.

He puesto el bat en WINDOWS (por aquello del path) y he cambiado la instalación de ghostscript y gsview a C:\ (en vez de c:\Archivos de programa).

Antes la salida era vacía. Ahora tengo:

C:\Archivos de programa\Apache Software Foundation\Apache2.2\web>"C:\Ghostgum\gsview\gspri nt.exe" -ghostscript "C:\gs\gs9.04\bin\gswin32.exe" -printer "nombre_impresora" -from 1 -to 1 "EXAMPLE.pdf"
Copyright (C) 2003-2006, Ghostgum Software Pty Ltd. All Rights Reserved.
2006-02-24 gsprint 1.9


Sigue sin imprimir, pero por lo menos ahora sé que lo está llamando! Pero porqué no imprime??

Última edición por BUZZHACKER; 09/12/2011 a las 07:10
  #16 (permalink)  
Antiguo 09/12/2011, 08:54
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Imprimir archivo PDF existente

Si ejecutas sólo el BAT, imprime? (Doble click!)

Ahora, tienes q conseguir que ejecutando el bat (si quieres, solo tienes q esscribir "Imprime.bat" en la consola), te imprima el documento.

En teoria, deberia ser igual que el comando q pones por consola, sin más problemas. Comprueba "nombre_impresora" y la ruta del pdf ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #17 (permalink)  
Antiguo 09/12/2011, 12:06
 
Fecha de Ingreso: agosto-2005
Mensajes: 14
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Imprimir archivo PDF existente

Cita:
Iniciado por Eleazan Ver Mensaje
Si ejecutas sólo el BAT, imprime? (Doble click!)

Ahora, tienes q conseguir que ejecutando el bat (si quieres, solo tienes q esscribir "Imprime.bat" en la consola), te imprima el documento.

En teoria, deberia ser igual que el comando q pones por consola, sin más problemas. Comprueba "nombre_impresora" y la ruta del pdf ;)

Si ejecuto sólo el BAT imprime perfectamente, pero lanzándolo con shell_exec no hace nada!

Que no hay suerte... seguiré googleando...

Muchísimas gracias Eleazan!
  #18 (permalink)  
Antiguo 12/12/2011, 01:08
 
Fecha de Ingreso: marzo-2003
Ubicación: Gandia, Valencia, España
Mensajes: 55
Antigüedad: 21 años, 1 mes
Puntos: 3
Respuesta: Imprimir archivo PDF existente

Tienes que poner un enlace como si lo fueras a descargar

En el php

echo '<a href="http://www.servidor.com/imprimir.bat">Imprimir</a>';
__________________
Sueño luego existo

Etiquetas: existente, pdf
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:40.