ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

Fonction pour convertir un fichier document en PDF   



L'auteur

Christophe Chenavier
France France
Membre Simple
# 0000000023
enregistré le 14/10/2004
http://www.corwin.fr
58 ans
CHENAVIER Christophe
80440 BOVES
de la société Corwin
Fiche personnelle


Note des membres
pas de note

Contributions > 09 - Automation

Fonction pour convertir un fichier document en PDF
# 0000000494
ajouté le 15/11/2007 14:36:33 et modifié le 15/11/2007
consulté 10618 fois
Niveau initié

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0


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
Cette fonction permet de convertir un fichier document (doc, html,...) au format PDF.
OpenOffice 2.0 ou supérieur doit être installé.
Code source :
*!*    Objet : Convertir un fichier document au format PDF
*!*    Auteur : C.Chenavier
*!*    Version : 1.00 - 15/11/2007
*!*    Note : OpenOffice 2.0 ou supérieur doit être installé


FUNCTION DocumentToPdf

LPARAMETERS cFileName, cDestPath

LOCAL cStatus, cUrl
LOCAL oServiceManager, oDesk, oDoc
LOCAL ARRAY aArgs(1)

M.cDestPath = ADDBS(EVL(M.cDestPath, JUSTPATH(M.cFileName)))
M.cDestPath = "file://" + IIF(ASC(M.cDestPath)=47, '''/') + ;
              CHRTRAN(M.cDestPath, '\''/') + JUSTSTEM(M.cFileName) + ".pdf"
M.cUrl = "file://" + IIF(ASC(M.cFilename)=47, '''/') + ;
         CHRTRAN(M.cFilename, '\''/')
TRY
   oServiceManager = CREATEOBJECT("com.sun.star.ServiceManager")
   IF ISNULL(oServiceManager)
      M.cStatus = "Erreur d'instanciation d'OpenOffice." + CHR(13) + ;
                  "Est-il correctement installé ?"
   ENDIF
CATCH
   M.cStatus = "OpenOffice 2.0 semble ne pas être installé sur cette machine."
ENDTRY

IF EMPTY(M.cStatus)
   oDesk = oServiceManager.createInstance("com.sun.star.frame.Desktop")
   aArgs(1) = MakeOOPropertyValue(oServiceManager, "Hidden".T.)
   TRY
      oDoc = oDesk.loadComponentFromURL(M.cUrl, "_blank", 0, @aArgs)
   CATCH
      M.cStatus = "Impossible de charger le document :" + CHR(13) + M.cFileName
   ENDTRY
   IF EMPTY(M.cStatus)
      aArgs(1) = MakeOOPropertyValue(oServiceManager, "FilterName""writer_pdf_Export")
      TRY
         oDoc.storeToURL(M.cDestPath, @aArgs)
      CATCH
         M.cStatus = "Impossible de créer le document :" + CHR(13) + ;
                     FORCEEXT(M.cFileName,"pdf")
      ENDTRY
   ENDIF
ENDIF

RETURN EVL(M.cStatus, '')


FUNCTION MakeOOPropertyValue

LPARAMETERS oServiceManager, cName, vValue, nHandle, nState

LOCAL oPropertyValue

oPropertyValue = oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
oPropertyValue.Name = M.cName
oPropertyValue.Value = M.vValue

IF VARTYPE(M.nHandle) = 'N'
  oPropertyValue.Handle = M.nHandle
ENDIF
IF VARTYPE(M.nState) = 'N'
  oPropertyValue.State = m.nState
ENDIF

RETURN oPropertyValue
Commentaires
Aucun commentaire enregistré ...

Publicité

Les pubs en cours :


www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3