FoxPress – Julio-Agosto 2002

 

      PDF’s desde Fox

 

Por Bob Lee                                                                                                        pdf.zip

 

              

 

PDFMaker no es otra utilidad que te crea una impresora virtual que te permite enviarle cualquier cosa para que te la deje como PDF. La diferencia es que este programa trabaja desde dentro de VFP para permitirte usar tus actuales informes para ser usados por un servidor web com PDF’s o para ser usados desde dentro de tu propia aplicación.

 

El ejemplo que viene con los fuentes lo puedes correr desde un servidor Web o como una aplicación desktop normal. Siguiendo estas instrucciones podrás tener un PDF Maker escrito en VFP en cuestión de minutos. PDF maker usar GhostScript como su procesador interno pero no te preocupes con estas simples instrucciones serás capaz de instalar y configurarlo rapidamente. No se usa Redmon ni ningún producto Shareware.

 

 

Paso 1

 

Bajate el Driver de Postcrit genérico de adobe.com desde http://64.152.50.10/vfpps2pdf/winsteng.exe o desde http://www.adobe.com/support/downloads/product.jsp?product=pdrv&platform=win#

 

Vete a impresoras (o panel de control - impresoras) y selecciona la impresora nueva que te has creado como tu impresora por defecto y haz click con el botón derecho del ratón en la ventana de propiedades del Generic Adobe postscript driver. Selecciona la pestaña de Avanzadas y selecciona el nuevo driver. Busca entre las impresoras por ejemplo la HP Color Laser jet 8500 PS.
A continuación pulsa en aplicar. Esto crea el driver de la impresora de color que devuelve un .ps que es internamente reconvertido a un archivo PDF.

 

 

Paso 2

 

Instala Ghostscript desde http://www.ghostscript.com/ Durante la instalación usa los valores por defecto. Si seleccionas otro lugar para la instalación del Ghostscript (otro diferente de c:\gs\gs7.04\bin\gswin32exe) deberás editar el archivo Locationofgs.ini con el path correcto para gswin32.exe

 

Paso 3

 

Copia los siguientes archivos desde el fichero  Zip a un directorio de trabajo

 
Ps2pdf.prg
Ps2pdfdif.prg
locationofgs.ini

 

Create tu propio  .prgs que llama a los reports cambiando una línea de código y añadiendo una nueva línea. Algo como esto:

 
        
report form customer_report noconsole to file psfile.ps
     =ps2pdf('psfile.ps')

     *** or something like this

     my_outputfile = 'output.ps'
     report form customer_report noconsole to file &my_outputfile
     =ps2pdf(my_outputfile)

 

Una vez que ps2pdf  ha acabado de convertir y guardar un archivo por nombre  con output.pdf o cualquier otro. Tu PDF se crea en un subdirectorio del directorio actual de trabajo  llamado pdffiles. A continuación puedes copiar el archivo o enviarlo por email.

 

El archivo ps2pdfdir.prg es una utilidad de VFP muy simple dirigido a mostrate como convertir el 100% de los archivos ps con una sola instrucción.


=ps2pdfdir("c:\mypsdirectory\")

PS2PDFDIR convertirá todos los archivos ps en ese directorio y, sitúa tus archivos pdf en tu directorio.

 

 

Una alternativa al PDFMAKER es ‘atacar’ directamente al API de la DLL del Ghoscript con las funciones:

 

DECLARE Long gsapi_revision IN gsdll32.dll ;

Long pGSRevisionInfo,  Long intLen

DECLARE Long gsapi_new_instance IN gsdll32.dll ;

Long @lngGSInstance, Long lngCallerHandle

DECLARE Long gsapi_delete_instance In gsdll32.dll ;

Long lngGSInstance

DECLARE Long gsapi_init_with_args IN gsdll32.dll ;

Long lngGSInstance, Long lngArgumentCount, ;

Long lngArguments

DECLARE Long gsapi_exit IN gsdll32.dll ;

Long lngGSInstance

 

En este caso deberás usar la clase tipo procedure llamada clsheap que se encuentra en los ficheros del mes y asegurarte de que tu impresora es Poscript. Si no lo es, usar el driver genérico de Adobe del artículo anterior.

 

Además de los ficheros facilitados por Bob Lee adjunto esta utilidad que hace lo mismo pero de otra manera. No obstante,  ambas siempre parten de un fichero .ps (postcript) que tienes que haberte creado previamente.

 

Otro artículo sobre este tema, siempre aplicado a Fox se publicó en esta revista en Enero de 2002

 

 

 

 

FoxPress – Julio-Agosto de 2002