Hola Mario Yo uso esta función que encontré en algún lado y funciona muy bien:
a=imppdf(c_nombrereporte,c_nombre_docu_guardar,c_nombre_carpeta) Primero tenés que ir al pdfcreator y en sus opciones tildar autoguardado Aquí va la función: *---------------------------------------------------------------- *---------Función para convertir frx a pdf automatización-------- *--recibe nombre reporte, nombre archivo pdf, ubicación del pdf-- *---------------------------------------------------------------- FUNCTION ImpPdf PARAMETERS lcRepo, lcPdf, lcUbi =proclase() DECLARE Sleep IN WIN32API INTEGER ReadyState = 0 && Variable indiquant que l'imprimante n'est pas prête PDFCreator = CREATEOBJECT("PDFCreator.clsPDFCreator") PDFReady = CREATEOBJECT("PDFEvent") && Voir définition de la classe plus bas EVENTHANDLER(PDFCreator,PDFReady) WITH PDFCreator * Démarrer sans lancer les travaux : .cStart ("/NoProcessingAtStartup") * Options de sauvegarde : .cOption("UseAutosave") = 1 .cOption("UseAutosaveDirectory") = 1 .cOption("AutosaveDirectory") = "&lcUbi" .cOption("AutosaveFilename") = lcPdf .cOption("AutosaveFormat") = 0 && 0 pour le format PDF * Modification temporaire de l'imprimante par défaut : DefaultPrinter = .cDefaultprinter .cDefaultprinter = "PDFCreator" .cClearcache ENDWITH REPORT FORM &lcRepo TO PRINTER NOCONSOLE * Lancement de l'impression : PDFCreator.cPrinterStop = .F. * On attend jusqu'à ce que l'imprimante soit prête ou que 10 secondes se soient écoulées : c = 0 DO WHILE (ReadyState = 0) AND (c < 10) c = c + 1 Sleep (500) ENDDO PDFCreator.cDefaultprinter = DefaultPrinter Sleep (200) PDFCreator.cClearcache PDFCreator.cClose RELEASE PDFCreator RELEASE PDFReady ENDFUNC PROCEDURE proclase *-------------------------------------------- * Définition de la classe gérant les événements : DEFINE CLASS PDFEvent AS Custom IMPLEMENTS __clsPDFCreator IN "PDFCreator.clsPDFCreatorOptions" * Evénement qui indique si l'imprimante est prête PROCEDURE __clsPDFCreator_eReady() AS VOID ReadyState = 1 ENDPROC * Gestion des erreurs PROCEDURE __clsPDFCreator_eError() AS VOID ENDPROC ENDDEFINE ************************************************************* *LOCAL lcPerfil AS CHARACTER, lcContrasenia AS CHARACTER , ; *lcDestinatario AS CHARACTER, lcTema AS CHARACTER , ; *lcCuerpo AS CHARACTER *LOCAL loOutlook AS "Outlook.Application", ; *loNameSpace AS OBJECT, loMailItem AS OBJECT *#DEFINE LF_CR CHR(10)+CHR(13) **-- Datos del Mail *lcPerfil = "Prueba" *lcContrasenia = "prueba" *lcDestinatario = "pru...@portalfox.com" *lcTema = "Prueba: " + TTOC(DATETIME()) *lcCuerpo = "Prueba enviando un mail desde Visual FoxPro." + LF_CR *lcCuerpo = lcCuerpo + "Saludos." + LF_CR **-- Creo objetos Outlook y NameSpace *loOutlook = CREATEOBJECT("Outlook.Application") *loNameSpace = loOutlook.GetNameSpace("MAPI") **-- Ejecuto los métodos *loNameSpace.Logon(lcPerfil , lcContrasenia) *loMailItem = loOutlook.CreateItem(0) *loMailItem.Recipients.ADD(lcDestinatario) *loMailItem.Subject = lcTema *loMailItem.Body = lcCuerpo *loMailItem.Send *loNameSpace.Logoff *loNameSpace = .NULL. *loOutlook = .NULL. Saludos Marcelo ________________________________ De: Mario Andrés Ageno <mario.ag...@sanjustosf.com.ar> Para: GUFA List Member <GUFA@mug.org.ar> Enviado: martes, 19 de junio de 2012 20:12 Asunto: [GUFA] PDF Creator Hola Grupo Como puedo hacer para crear los archivos con PDF Creator, pero el nombre que quiero que me grabe es el numero de la factura y no el nombre del reporte supuestamente con <Title> podría ser pero no tengo forma desde VFP enviar un Titulo Aclaro que solo instale el PDF como una impresora mas y la selecciono al momento de emitir el reporte Gracias