yo uso la siguiente linea...
y listo...
si tienes dudas las revisamos...
PROCEDURE creapdf
PARAMETER ARCHIVOPDF, REPORTE
IF FILE('&archivopdf')
WAIT WINDOW TIMEOUT 3 'archivo '+ARCHIVOPDF+' ya existe...'
RETURN
ENDIF
WDEFAULTPRINTER = SET("PRINTER", 2)
WAIT WINDOW NOWAIT ' Impresora por defecto '+WDEFAULTPRINTER
WPRINTER = "Bullzip PDF Printer"
WDESTFILE = (ARCHIVOPDF)
WAIT WINDOW NOWAIT 'creando archivo: '+WDESTFILE
OOBJ = CREATEOBJECT("BullZIP.PDFPrinterSettings")
OOBJ.SETVALUE("Output", WDESTFILE)
OOBJ.SETVALUE("ShowSettings", "never")
OOBJ.SETVALUE("ShowPDF", "no")
OOBJ.SETVALUE("ConfirmOverwrite", "no")
OOBJ.WRITESETTINGS(.T.)
WSALIDA = 'to print'
SET PRINTER TO NAME (WPRINTER)
SET CONSOLE OFF
REPORT FORM &REPORTE &WSALIDA
SET CONSOLE ON
SET PRINTER TO NAME (WDEFAULTPRINTER)
RETURN
ENDPROC