Macro libre office lors de la génération PDF

Bonjour à Tous,

Première participation, c’est un grand jour pour moi.
Voici mon sujet :
- je génère des factures ou propale sous ODT.
- j’ai configuré pour générer automatiquement des fichiers PDF par la suite

Jusque là tout va bien.

Je me suis dit, pourquoi ne pas exécuter une macro qui me permettrait de réaliser d’autre type d’action.

Donc j’ai commencé par tester un fichier php qui exécute une macro libre office
La macro :
[i]Sub TestMacro(ps_Document as string)
dim f as Integer
f = freefile

open "d:\TestMacro.txt" for append as f
write #f, Time & " Test macro, file=[" & ps_Document & "]"
close #f

end sub
[/i]

Le fichier php :
[i]<?php

	$File = "'C:///Mon Fichier.txt'";
	
	$command = 'soffice -headless  "macro:///lib_Kodiris.mod_Dolibarr.TestMacro('.$File.')"';
	$result = shell_exec($command);

?>
[/i]

Ca, ça marche.

Par contre, quand j’ajoute le même code dans odf.php, dans la function exportAsAttachedPDF, le retour de fonction est correct, mais çà ne marche pas : le fichier de test ne s’écrit pas.
Quelqu’un aurait il une idée ?

En vous remerciant…

Oliv’

Salut KODOlive,

où est hébergé ton dolibarr ? (local ? serveur dédié ? si oui quel OS ?)
quelle est ta version de dolibarr ?

Ce que tu décris ressemble à la différence entre un test réalisé en local, puis une intégration dans un hébergement distant (d’où la non-exécution de la macro). Mais je me trompe peut être : donnes plus d’infos stp :happy:

Salut Arre,

Merci pour la réponse.
Pour mes tests, je reste en local. Actuellement nous somme sur une machine virtuelle (VMWare) sous Windows 10 Pro.
La version de Dolibarr est 9.0.4.

Note : il y a un autre fil avec le même sujet qui a été ouvert accidentellement
Je vais tenter d’indiquer que celui ci est le bon…

lequel ? je vais simplement le supprimer, donne moi l’url stp

IL s’agit du fil nommé : Ajout d’une macro après Génération ODT : www.dolibarr.fr/forum/t/ajout-dune-macro-apres-generation-odt/30309/1

Sinon, j’ai un peu avancé.

A mon avis, le soucis est que l’environnement d’exécution du fichier php correspond à un autre utilisateur que le mien.
Si bien que lorsque je lui dis d’utiliser une macro dans ma bibliothèque, il ne la trouve pas.

J’ai bien essayé d’utiliser une macro située dans un fichier, pour contourner ce problème mais le processus LibreOffice reste ouvert et rien ne se passe plus rien
(alors qu’il y a une commande de fermeture de libreoffice dans ma macro…)

Voilà où j’en suis…
A 2 doigts de laisser tomber, mais c’est bien dommage, car cela permettrait d’automatiser les traitements que l’on ne peut faire autrement …

Je viens de supprimer l’autre fils de discussion.

il y avait juste 1 contribution, je la copie/colle si ça peut avoir de l’intérêt:

pcbleu :