Hola Oscar
 
   Estoy trabado probando tu ejemplo. No me guarda el archivo y además el 
pdfcreator queda colgado. Tenés idea de qué estoy haciendo mal?
 
   Hay que configurar el pdfcreator de algún modo en especial?
 
Gracias
Marcelo


--- El lun 9-may-11, Oscar Zárate <[email protected]> escribió:


De: Oscar Zárate <[email protected]>
Asunto: [GUFA] Automatizar PDFCreator
Para: "GUFA List Member" <[email protected]>
Fecha: lunes, 9 de mayo de 2011, 20:43



Yo hago algo así.
1.- Seteo la salida a PDFCreator (Función SetToPDFCreator)
2.- Imprimo lo que haga falta
3.- Seteo a lo que estaba antes (Función CancelPDFCreator)
 
Espero te sirva.
 
SaludOZ,
 
FUNCTION SetToPDFCreator
  LOCAL loPDFCreator, llReturn
  STORE NULL TO loPDFCreator
  STORE .T. TO llReturn
  TRY
    loPDFCreator = Createobject('PDFCreator.clsPDFCreator')
    IF VARTYPE(m.loPDFCreator) = "O"
      WITH loPDFCreator
        *-- Syncronize process
        .cStart("/NoProcessingAtStartup")
        *-- Save original Values in oApp Object
        oApp.nUseAutoSave          = .cOption("UseAutosave")
        oApp.nUseAutoSaveDirectory = .cOption("UseAutosaveDirectory")
        oApp.nAutoSaveFormat       = .cOption("AutosaveFormat")
        oApp.cDefaultPrinter       = .cDefaultprinter
        oApp.cAutoSaveDirectory    = .cOption("AutosaveDirectory")
        oApp.cAustoSaveFileName    = .cOption("AutosaveFilename")
        *-- Set Autosave to True
        .cOption("UseAutosave") = 1
        .cOption("UseAutosaveDirectory") = 1
        *-- Set Format to PDF
        .cOption("AutosaveFormat") = 0
        *-- Set Default Printer to PDFCreator
        .cDefaultprinter = "PDFCreator"
        SET PRINTER TO NAME "PDFCreator"
        *-- Clear Cache
        .cClearcache()
        *-- Set Printo Stop to False
        .cPrinterStop = .F.
        *-- Set Directory for AustoSave to %Temp%
        .cOption("AutosaveDirectory") = ADDBS(SYS(2023))
        *-- Set the name to the same that the report has
        .cOption("AutosaveFilename") = "<REDMON_DOCNAME_FILE>"
        *-- Save the values
        .cSaveOptions()
      ENDWITH
    ELSE
      llReturn = .F.
    ENDIF
    *-- Destroy Object
    loPDFCreator = NULL
  CATCH
    llReturn = .F.
  ENDTRY
  *-- Return Result
  RETURN m.llReturn
ENDFUNC
 

FUNCTION CancelPDFCreator
  LOCAL loPDFCreator, llReturn
  STORE NULL TO loPDFCreator
  STORE .T. TO llReturn
  TRY
    loPDFCreator = Createobject('PDFCreator.clsPDFCreator')
    IF VARTYPE(m.loPDFCreator) = "O"
      WITH loPDFCreator
        *-- Syncronize process
        .cStart("/NoProcessingAtStartup")
        *-- Recover original Values from oApp Object
        .cOption("UseAutosave")          = oApp.nUseAutoSave
        .cOption("UseAutosaveDirectory") = oApp.nUseAutoSaveDirectory
        .cOption("AutosaveFormat")       = oApp.nAutoSaveFormat
        .cDefaultprinter                 = oApp.cDefaultPrinter
        SET PRINTER TO NAME (oApp.cDefaultPrinter)
        *-- Clear Cache
        .cClearcache()
        *-- Set Printo Stop to False
        .cPrinterStop = .F.
        .cOption("AutosaveDirectory")    = oApp.cAutoSaveDirectory
        .cOption("AutosaveFilename")     = oApp.cAustoSaveFileName
        *-- Save the values
        .cSaveOptions()
      ENDWITH
    ELSE
      llReturn = .F.
    ENDIF
    *-- Destroy Object
    loPDFCreator = NULL
  CATCH
    llReturn = .F.
  ENDTRY
  *-- Return Result
  RETURN m.llReturn
ENDFUNC
 
2011/5/10 Nando <[email protected]>





Alguien tiene un ejemplo para automatizar pdfcreator desde fox? Es necesario 
instalarlo en la pc del cliente o con registrar alguna DLL alcanza?
 
Nando

Responder a