Ir al contenido


Foto

convertir un archivo html a pdf

delphi html pdf

  • Por favor identifícate para responder
9 respuestas en este tema

#1 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 19 mayo 2015 - 10:50

Hola amigos, estoy haciendo un programita en D7 que genera archivos html y ahora me han pedido que esa vista html se genere en PDF. ¿Alguién sabe cómo hacerlo?

 

saludos.


  • 0

#2 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.000 mensajes
  • LocationMadrid - España

Escrito 19 mayo 2015 - 11:31

Quizás lo resuelvas cargando el html en un TWebBrowser e imprimiéndolo, después, en una impresora virtual PDF.


Saludos.
  • 0

#3 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 19 mayo 2015 - 12:18

El problema es que es un proceso automatizado amigo. :( pues genera el html y debe enviar el correo por email.


  • 0

#4 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 19 mayo 2015 - 12:32

Hola,

 

Personalmente no me complicaría demasiado y utilizaría un conversor de línea de comando como este : http://wkhtmltopdf.org/

 

Como puedes ver es código libre. Solo tienes que distribuir el ejecutable con tu aplicación (ponerlo en la misma carpeta) y llamarlo para que haga la conversión. Es más simple que la solución de escafandra, que aunque también funcionaría perfectamente necesita que tus usuarios instalen una impresora en cada equipo.

 

Claro que si te animas incluso te puedes liar a usarlo como una librería C a linkar con tu aplicación.

 

http://wkhtmltopdf.org/libwkhtmltox/


  • 1

#5 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.000 mensajes
  • LocationMadrid - España

Escrito 19 mayo 2015 - 12:54

Para cargar el archivo puedes usar:
 


delphi
  1. WebBrowser.Navigate(WideString(archivo.html));

 
 
Para imprimir en la impresora por defecto directamente:


delphi
  1. var
  2. vIn, vOut: OleVariant;
  3. begin
  4. WebBrowser.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vIn, vOut) ;
  5. end;

Saludos.


  • 0

#6 escafandra

escafandra

    Advanced Member

  • Moderadores
  • PipPipPip
  • 4.000 mensajes
  • LocationMadrid - España

Escrito 19 mayo 2015 - 12:56

No me di cuenta que publicaste, Marc. Tu opción puede ser muy buena.

 

 

Saludos.


  • 0

#7 Héctor Randolph

Héctor Randolph

    501st Legion

  • Moderador
  • PipPipPip
  • 664 mensajes
  • LocationMéxico

Escrito 19 mayo 2015 - 02:11

Yo enviaría el HTML incrustado en el mismo correo, es decir, para que convertirlo en PDF si los clientes de correo tienen la capacidad de abrir directamente un correo con formato HTML.

 

Saludos


  • 0

#8 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 19 mayo 2015 - 03:48

Hola,

 

Personalmente no me complicaría demasiado y utilizaría un conversor de línea de comando como este : http://wkhtmltopdf.org/

 

 

¿Abusando amigo, hay forma de que me pases alguna página con código en delphi que use esa lib?

 

 

 

Para cargar el archivo puedes usar:
 


delphi
  1. WebBrowser.Navigate(WideString(archivo.html));

 
 
Para imprimir en la impresora por defecto directamente:


delphi
  1. var
  2. vIn, vOut: OleVariant;
  3. begin
  4. WebBrowser.ControlInterface.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vIn, vOut) ;
  5. end;

Saludos.

 

Interesante, la probaré por que ya llevo un par de días de retrazo.

 

 

 

Yo enviaría el HTML incrustado en el mismo correo, es decir, para que convertirlo en PDF si los clientes de correo tienen la capacidad de abrir directamente un correo con formato HTML.

 

Saludos

 

De hecho así lo hago pero los jefes piden una versión en pdf y pues, dónde manda capitan.... 


  • 0

#9 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 20 mayo 2015 - 05:03

¿Abusando amigo, hay forma de que me pases alguna página con código en delphi que use esa lib?

 

Es una utilidad de línea de comando. Solo tienes que poner ese ejecutable junto a tu aplicación y llamarlo mediante la función ShellExecute pasando como parámetro el nombre de archivo a convertir.

 

Si la función ShellExecute no te sirve, puedes encontrar muchos ejemplos de código sobre como lanzar comandos externos con parámetros : http://delphiallimit...sperar-que.html

 

Saludos.


  • 0

#10 poliburro

poliburro

    Advanced Member

  • Administrador
  • 4.945 mensajes
  • LocationMéxico

Escrito 21 mayo 2015 - 09:59

Es una utilidad de línea de comando. Solo tienes que poner ese ejecutable junto a tu aplicación y llamarlo mediante la función ShellExecute pasando como parámetro el nombre de archivo a convertir.

 

Si la función ShellExecute no te sirve, puedes encontrar muchos ejemplos de código sobre como lanzar comandos externos con parámetros : http://delphiallimit...sperar-que.html

 

Saludos.

 

 

Amigo, me ha funcionado de maravilla la librería que me indicaste usara. Muchas gracias.


  • 0





Etiquetado también con una o más de estas palabras: delphi, html, pdf