L'auteur
eric leissler France Membre Simple # 0000002784 enregistré le 06/03/2010 http://www.aumeric.fr 68 ans LEISSLER Eric 85290 MORTAGNE SUR SEVRE de la société AUMERIC LOGICIELS Fiche personnelle
Note des membres
20/20 1 vote
|
Contributions > 03 - FRX : Etat, impression, Report
imprimer un etat vfp et l'enregistrer au format pdf avec pdf creator sous vista
# 0000000528
ajouté le 19/04/2008 14:09:40 et modifié le 19/04/2008
consulté 11734 fois
Niveau
débutant
Le téléchargement des pièces jointes est limité aux membres Veuillez vous identifier ou vous inscrire si vous n'avez pas encore de compte ...
|
Description |
Bonjour à toutes et à tous Compte tenu des contraintes, nous avons donc changé de fusil d’épaule et avons décidé d’ imprimer l’état et en faire une copie en pdf dans un répertoire. J’ai eu beau lui dire que xrfx était bien et qu’il pouvait exporter directement en pdf, il ne veut rien savoir. Difficulté supplémentaire, le poste étant en vista, le set printer to name telimprimante ne fonctionne pas sous vista. La je dois un grand merci à maitre grégory ! |
Code source : |
Local PrinterNow, PrinterOld
*!* oPDFC = Createobject("PDFCreator.clsPDFCreator","pdfcreator")
*!* oPDFC.cStart("/NoProcessingAtStartup")
*!* oPDFC.cOption("UseAutosave") = 1
*!* oPDFC.cOption("UseAutosaveDirectory") = 1
*!* oPDFC.cOption("AutosaveFormat") = 0 && ; 0 = PDF format
*!* DefaultPrinter = oPDFC.cDefaultprinter
*!* oPDFC.cDefaultprinter = "pdfcreator"
*!* oPDFC.cClearCache
*!* ReadyState = 0
*!* oPDFC.cOption("AutosaveFilename") = "toto"
*!* oPDFC.cOption("AutosaveDirectory") = ".\personnels\"
*!* oPDFC.cprinterstop=.F.
*!* *!* REPORT FORM (m.monfic) TO PRINTER
*!* *!* SET PRINTER TO name (lcoldPrinter) && On revienr à l'ancienne imprimante
*!* *!* COPY FILE .\personnels\toto.pdf TO (m.ficdest)
*!* oPDFC.cDefaultprinter = DefaultPrinter
*!* oPDFC.cClearCache
*!* Release oPDFC
PrinterNow = "pdfcreator"
If( !Empty(m.PrinterNow) )
=Printer_Set(m.PrinterNow, @m.PrinterOld)
Report Form ctssaisonnier Noconsole To Printer
=Printer_Set(m.PrinterOld)
Endif
i=0
Do While !File(".\personnels\toto.pdf")
i=i+1
Wait "tempo imprimante"+Alltrim(Str(i)) Windows nowait
If i>100000
Exit
Endif
Enddo
Copy File .\personnels\toto.pdf To monfic.pdf
PrinterNow = "\\HADES\Brother HL-1250"
If( !Empty(m.PrinterNow) )
=Printer_Set(m.PrinterNow, @m.PrinterOld)
Report Form ctssaisonnier Noconsole Preview
=Printer_Set(m.PrinterOld)
Endif
*-------------------------------------------------------------------------------
#Define TRUE .T.
#Define FALSE .F.
Function Printer_Set(PrinterNew, PrinterOld)
PrinterOld = WindowsPrinter_Get()
If( Upper(m.PrinterOld ) <> Upper(m.PrinterNew) )
=WindowsPrinter_Set(m.PrinterNew)
Set Printer To Default && to avoid error 1958, not sure we need this
Set Printer To Name (m.PrinterNew)
Endif
Endfunc
*-------------------------------------------------------------------------------
Function WindowsPrinter_Get()
Return Set('Printer', 2)
Endfunc
*-------------------------------------------------------------------------------
Function WindowsPrinter_Set(PrinterNew, PrinterOld)
Local wsh, sError
sError = On('error')
PrinterOld = WindowsPrinter_Get()
Do Case
Case Lower(m.PrinterOld) <> Lower(m.PrinterNew)
Private HadError
HadError = FALSE
On Error HadError = TRUE
wsh = Createobject('WScript.Network') && error on win95
=m.wsh.SetDefaultPrinter(m.PrinterNew)
On Error &sError
wsh = Null
Return !m.HadError
Endcase
Endfunc
*-------------------------------------------------------------------------------
|
Commentaires |
Aucun commentaire enregistré ...
|