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