entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Enviar index.php a impresora en background

Vamos a ver si consigo ya dar exactamente con lo que necesitamos, tenemos una macro creada en outlook (gracias carlossevi por la pronta respuesta ayer) que toma un valor concreto del correo que se acaba de recibir, con este valor llama a una web que lo que debe hacer es: Mostrar una información asociada a esos valores (esas consultas ya están creadas y la página también) y esa información que está mostrando imprimirla a pdf. Todo debe ocurrir en background y de forma transparente para el usuario del sistema.

Qué os parece? Estoy pidiendo hacer algo muy complicado?

Tenéis alguna idea?

Muchas gracias!!!!

2 Respuestas

0voto

ankeorum Puntos7210

Al final lo que hice fue usar fPDF y realmente la lógica que sigue es similar a la que has puesto de mPDF, construir desde 0 el PDF recuperando los datos de la base de datos cuando corresponde o de la alerta en e-mail cuando es necesario.

Es muy dinámico y potente.

1voto

carlossevi Puntos63580

A ver si he entendido bien: ¿bastaría con que la macro hiciese una petición HTTP a una página que ya tienes montada o hay que recuperar el resultado y hacer algo con él? Entiendo que en esa petición le pasas los parámetros vía GET o POST, pero tengo dudas con lo que pasa después.

Interpreto que quieres que esa petición devuelva un contenido (HTML) que a su vez quieres imprimir y guardar en PDF. Hasta donde yo sé sí que puedes hacer que un HTML de la orden de impresión vía JS pero no creo que sea evitable que el usuario tenga que aceptar el cuadro de diálogo de la impresora. En el mejor de los casos el usuario tendrá una impresora PDF configurada para guardar automáticamente el resultado en una ruta definida pero creo que siempre hará falta que el usuario la seleccione y acepte.

Como solución alternativa se me ocurre que la generación del PDF la hagas desde el servidor. Es decir, que en lugar de que tu script PHP genere una salida en HTML para ser interpretada por el navegador web genere un PDF que se guarde en la ruta que quieras. Hay muchas librerías con muchas posibilidades para la generación de PDF en PHP y algunas de ellas aceptan directamente que les pases HTML y CSS, por ejemplo mPDF.

0voto

ankeorum comentado

Voy a intentar explicarme mejor con trozos del código delante; el código macro de outlook se basa en esto:

MyApp = "C:\Program Files\Internet Explorer\IEXPLORE.EXE"
MyURL = "http://anywhere/anytime/confirm.php?uniquekey=" & myUniqueKey & "&claimuser=" & UserNoSpaces & "&subject=" & subject
MsgBox (MyURL)
Shell (MyApp & " " & MyURL), vbNormalFocus

Ese código, básicamente lo que hace es obtener unas variables que envía a una página PHP, en esa página se hacen unas querys a la base de datos que generan una página HTML. Esa página HTML es lo que se tiene que imprimir en un PDF. Realmente me da igual que se haga vía fPDF, HTML2PDF, o con algún método javascript o jQuery. Lo que me gustaría es que funcionara :_( jejejeje

Lo que estamos pensando ahora es que quizás debamos componer nosotros mismos el PDF usando fPDF y creando las columnas y las filas y metiendo la información que queramos en cada sitio rescatando previamente la información mediante consultas a la base de datos y variables $PHP$...

Realmente acepto cualquier sugerencia que pensáis que pueda ser más fácil porque esto se está convirtiendo en algo tedioso.

0voto

carlossevi comentado

Tal y como te decía en mi respuesta anterior, si yo tuviera que hacerlo lo desarrollaría en la parte del servidor en PHP. El trabajo de la macro de Outlook terminaría cuando ha enviado la petición HTTP y a partir de ahí es el PHP el que tiene que encargarse de rescatar los datos (ya lo tienes desarrollado), componer un informe en HTML (también lo tienes) y pasarle el HTML a una librería que componga el PDF.

Sólo tendrías que desarrollar el último punto ya que lo demás lo tienes listo.

0voto

ankeorum comentado

Pero realmente como puedo hacer eso? He probado con HTML2PDF y me va petando cada dos líneas... con fPDF tengo que componer el PDF manualmente...

0voto

carlossevi comentado

¿Has probado con mPDF? Tiene una buena documentación y está derivado de HTML2PDF.

El ejemplo básico de generación es:

Incluir la clase de mPDF:

include('../mpdf.php');

Crear una instancia de la clase:

$mpdf=new mPDF();

Escribir el código HTML:

$mpdf->WriteHTML('<p>¡Hola Mundo!</p>');

Definir la salida (en este caso a fichero pero hay más opciones:

$mpdf->Output('RutayNombreDelFichero.pdf','F');
exit;

Tendrás que adaptar tu script para llevar el HTML generado al punto WriteHTML.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta