Comment remplacer des images de document Write Pro

Bonjour,

Nous cherchons à mettre à jour des images contenues dans un document Write Pro. Nous arrivons bien à récupérer les images contenues dans le document, à effectuer les modifications souhaitées mais on bute sur la procédure à suivre pour réintégrer l’image modifiée dans le Write Pro. Comment récupérer l’objet cible à utiliser dans WP INSERT PICTURE ?

<code 4D>
C_PICTURE($monImageModifiee)
C_OBJECT($owp;$pictElem;$oobjcible)
C_COLLECTION($colPicts)

$colPicts:=WP Get elements($owp;wk type image)
If ($colPicts#Null)

For each ($pictElem;$colPicts)
	
	  //ici ma modification de l'image $pictElem.image -> $monImageModifiee
	
	
	  //$oobjcible:= ???
	
	WP INSERT PICTURE($oobjcible;$monImageModifiee;wk replace)
	
End for each 

End if

</code 4D>

Avec https://doc.4d.com/4Dv17R6/4D/17-R6/WP-Ajouter-image.301-4433871.fr.htmlça>, peut-être ?

(où Arnaud essaie de faire croire qu’il sait se servir de write pro)

Ce https://forums.4d.com/Post/EN/32289359/1/32289360#32289360fil> peut-il t’inspirer ?

Oups, je me suis planté de lien en collant, c’était https://doc.4d.com/4Dv17R6/4D/17-R6/WP-Picture-range.301-4433876.en.html. Entre l’anglais, le français, la logique du nommage et les changements de noms (“La commande WP Plage images était nommée WP Creer plage images dans les versions précédentes de 4D Write Pro. Elle a été renommée pour plus de clarté.”), j’ai du mal…

Bonjour Éric…

Voila le bout de code qui vous manque…

$range:=WP Picture range($pictElem)

une fois le range obtenu, vous pouvez l’utiliser directement ou bien utiliser les attributs .start et .end qu’il contient.

<code 4D>
$colPict:=WP Get elements([documents]wp;wk type image)

for each($pictElem;$colPict)

$range:=WP Picture range($pictElem)

(...)

End for each

</code 4D>

Cordialement

Roland Lannuzel

Bonjour,

Merci à tous pour votre aide. Finalement, la solution adoptée est vraiment simple (j’espère qu’elle sera bien validée mais ça fonctionne très bien) :

<code 4D>
C_OBJECT($oWritePro;$oPicture)
C_COLLECTION($cPictures)
C_PICTURE($pPictureModified)

$cPictures:=WP Get elements($oWritePro;wk type image)
If ($cPictures#Null)
For each ($oPicture;$cPictures)

	$pPictureModified:=MonTraitement ($oPicture.image)  //mon traitement de l'image
	
	
	WP SET ATTRIBUTES($oPicture;wk image;$pPictureModified)
	
	
End for each 

End if

</code 4D>

bonjour Éric,

merci pour ce retour !

Cordialement

Roland Lannuzel