<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>25 Mar 2020 15:21:31 Z</lastBuildDate><pubDate>25 Mar 2020 15:21:31 Z</pubDate><description>Bonjour&#13;
&#13;
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)&#13;
sur la ligne :&#13;
[code:wl]&#13;
oExportObject&gt;&gt;Set("[]com.sun.star.beans.PropertyValue",tParams);&#13;
[/code]&#13;
&#13;
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.&#13;
&#13;
Quelqu'un a-t-il une idée ?&#13;
&#13;
[code:wl]&#13;
PROCÉDURE CreateProperty(oServiceManager,__tArgs,_sName est une chaîne,_vValue)&#13;
&#13;
TableauAjoute(__tArgs)&#13;
iNbOccurences est un entier = __tArgs..Occurrence&#13;
&#13;
__tArgs[iNbOccurences]			= oServiceManager&gt;&gt;Bridge_GetStruct("com.sun.star.beans.PropertyValue") &#13;
__tArgs[iNbOccurences]&gt;&gt;Name	= _sName&#13;
__tArgs[iNbOccurences]&gt;&gt;Value	= _vValue&#13;
[/code]&#13;
&#13;
[code:wl]&#13;
PROCÉDURE DocumentVersPDF(LOCAL _sDocCheminComplet est une chaîne,_sDocPDFCheminComplet est une chaîne="")&#13;
&#13;
LOCAL&#13;
	oServiceManager	est un objet OLE dynamique&#13;
	oDesktop		est un objet OLE dynamique&#13;
	oDocument		est un objet OLE dynamique&#13;
	sMess			est une chaîne&#13;
	&#13;
SI PAS fFichierExiste(_sDocCheminComplet) ALORS&#13;
	sMess = "Le document source n'existe pas."&#13;
	ExceptionDéclenche(1,sMess)&#13;
FIN&#13;
&#13;
QUAND EXCEPTION DANS&#13;
	// Création d'un service OpenOffice si nécessaire&#13;
	oServiceManager	= allouer un objet OLE ("com.sun.star.ServiceManager")&#13;
	oDesktop		= oServiceManager&gt;&gt;createInstance("com.sun.star.frame.Desktop")&#13;
FAIRE&#13;
	sMess = "OpenOffice n'est pas installé sur votre poste."&#13;
	ExceptionDéclenche(1,sMess)&#13;
FIN&#13;
&#13;
tParams est un tableau de 0 objet Automation dynamique //Tableau de paramètres&#13;
&#13;
//Masqué&#13;
CreateProperty(oServiceManager,tParams,"Hidden",Vrai)&#13;
//Lecture seule&#13;
//CreateProperty(oServiceManager,tParams,"ReadOnly",faux)&#13;
&#13;
//Formatage du chemin du fichier&#13;
LOCAL&#13;
	sDocCheminCompletTmp est une chaîne&#13;
	&#13;
sDocCheminCompletTmp	= "file:///"+Remplace(_sDocCheminComplet,"\","/")&#13;
//Ouverture du fichier dans OpenOffice Writer&#13;
oDocument				= oDesktop&gt;&gt;LoadComponentFromURL(sDocCheminCompletTmp,"_blank",0,tParams)&#13;
SI oDocument = Null ALORS&#13;
	ExceptionDéclenche(1,"Impossible de charger le document source.")&#13;
FIN&#13;
&#13;
TableauSupprimeTout(tParams)&#13;
//CreateProperty(oServiceManager,tParams,"Magnification",2)&#13;
//CreateProperty(oServiceManager,tParams,"EncryptFile",vrai)&#13;
//CreateProperty(oServiceManager,tParams,"DocumentOpenPassword","Password")&#13;
//CreateProperty(oServiceManager,tParams,"HideViewerWindowControls",vrai)&#13;
&#13;
oExportObject est un objet OLE dynamique&#13;
oExportObject = oServiceManager&gt;&gt;Bridge_GetValueObject()&#13;
oExportObject&gt;&gt;Set("[]com.sun.star.beans.PropertyValue",tParams);&#13;
&#13;
tFilterParams est un tableau de 0 objet Automation dynamique&#13;
CreateProperty(oServiceManager,tFilterParams,"FilterName","writer_pdf_Export")&#13;
CreateProperty(oServiceManager,tFilterParams,"FilterData",oExportObject)&#13;
&#13;
SI _sDocPDFCheminComplet = "" ALORS&#13;
	_sDocPDFCheminComplet = fExtraitChemin(_sDocCheminComplet,fDisque+fRépertoire+fFichier)+".pdf"&#13;
FIN&#13;
&#13;
LOCAL&#13;
	sDocPDFCheminCompletTmp est une chaîne&#13;
	&#13;
sDocPDFCheminCompletTmp = "file:///"+Remplace(_sDocPDFCheminComplet,"\","/")&#13;
&#13;
oDocument&gt;&gt;StoreToURL(sDocPDFCheminCompletTmp,tFilterParams);&#13;
&#13;
oDocument&gt;&gt;Close(Vrai);&#13;
&#13;
CAS EXCEPTION:&#13;
sMess = "Erreur lors de la sauvegarde du document : "+RC&#13;
sMess += "'"+_sDocCheminComplet+"'"+RC&#13;
sMess += "vers le document : "+RC&#13;
sMess += "'"+_sDocPDFCheminComplet+"'."+RC&#13;
ExceptionPropage(sMess+RC+RC+ExceptionInfo(errComplet))&#13;
[/code]&#13;
&#13;
Merci d'avance.</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/237941-convertir-document-format-docx-vers-format-pdf-avec/read.awp</link><title>Convertir un document au format docx vers le format PDF avec les fonctions OLE d'Open Office</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster></channel></rss>
