Bonjour
J'avais trouvé 2 procédures pour générer un fichier PDF à partir d'un fichier Word qui fournissaient un meilleur résultat que la fonction de Windev. Ce code ne fonctionne plus et m'indique que le tableau dynamique n'a pas été alloué (Code erreur : 2301)
sur la ligne :
oExportObject>>Set("[]com.sun.star.beans.PropertyValue",tParams);
Je pense que c'est depuis le passage de Windev 22 à 25, J'ai réinstallé les versions de LibreOffice v6.3, 6.2, 6.1, 6.0 et même v5, cela ne change rien.
Quelqu'un a-t-il une idée ?
Procedure CreateProperty(oServiceManager,__tArgs,_sName est une chaîne,_vValue)
TableauAjoute(__tArgs)
iNbOccurences est un entier = __tArgs..Occurrence
__tArgs[iNbOccurences] = oServiceManager>>Bridge_GetStruct("com.sun.star.beans.PropertyValue")
__tArgs[iNbOccurences]>>Name = _sName
__tArgs[iNbOccurences]>>Value = _vValue
Procedure DocumentVersPDF(LOCAL _sDocCheminComplet est une chaîne,_sDocPDFCheminComplet est une chaîne="")
LOCAL
oServiceManager est un objet OLE dynamique
oDesktop est un objet OLE dynamique
oDocument est un objet OLE dynamique
sMess est une chaîne
SI PAS fFichierExiste(_sDocCheminComplet) ALORS
sMess = "Le document source n'existe pas."
ExceptionDéclenche(1,sMess)
FIN
QUAND EXCEPTIONEXCEPTION DANS
oServiceManager = allouer un objet OLE ("com.sun.star.ServiceManager")
oDesktop = oServiceManager>>createInstance("com.sun.star.frame.Desktop")
FAIRE
sMess = "OpenOffice n'est pas installé sur votre poste."
ExceptionDéclenche(1,sMess)
FIN
tParams est un tableau de 0 objet automation dynamique
CreateProperty(oServiceManager,tParams,"Hidden",Vrai)
LOCAL
sDocCheminCompletTmp est une chaîne
sDocCheminCompletTmp = "file:///"+Remplace(_sDocCheminComplet,"\","/")
oDocument = oDesktop>>LoadComponentFromURL(sDocCheminCompletTmp,"_blank",0,tParams)
SI oDocument = Null ALORS
ExceptionDéclenche(1,"Impossible de charger le document source.")
FIN
TableauSupprimeTout(tParams)
oExportObject est un objet OLE dynamique
oExportObject = oServiceManager>>Bridge_GetValueObject()
oExportObject>>Set("[]com.sun.star.beans.PropertyValue",tParams);
tFilterParams est un tableau de 0 objet automation dynamique
CreateProperty(oServiceManager,tFilterParams,"FilterName","writer_pdf_Export")
CreateProperty(oServiceManager,tFilterParams,"FilterData",oExportObject)
SI _sDocPDFCheminComplet = "" ALORS
_sDocPDFCheminComplet = fExtraitChemin(_sDocCheminComplet,fDisque+fRépertoire+fFichier)+".pdf"
FIN
LOCAL
sDocPDFCheminCompletTmp est une chaîne
sDocPDFCheminCompletTmp = "file:///"+Remplace(_sDocPDFCheminComplet,"\","/")
oDocument>>StoreToURL(sDocPDFCheminCompletTmp,tFilterParams);
oDocument>>Close(Vrai);
CAS EXCEPTION:
sMess = "Erreur lors de la sauvegarde du document : "+RC
sMess += "'"+_sDocCheminComplet+"'"+RC
sMess += "vers le document : "+RC
sMess += "'"+_sDocPDFCheminComplet+"'."+RC
ExceptionPropage(sMess+RC+RC+ExceptionInfo(errComplet))
Merci d'avance.