[Résolu][Writer]hyperlien comprenant une variable
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
[Résolu][Writer]hyperlien comprenant une variable
bonjour a tous.
je cherche a generer un hyperlien dans une macro writer vers une url locale comprenant une variable.
j'ai redige une serie de macro qui me permettent d'obtenir une chaine de ce type : vString = repertoireCourant + "page.html"
chaine que j'associe ensuite a mon curseur en utilisant : v.HyperLinkURL = convertToUrl(vString)
jusqu'ici, tout va bien, et ma page page.html s'affiche sans probleme.
en revanche, si j'essaie de passer une variable dans l'url, en ecrivant : vstring = repertoireCourant + "page.html?var=3", rien ne va plus et j'obtiens un message d'erreur :
file:///C:/Repertoire/page.html%3Fvar=3
Le chemin d'accès spécifié n'existe pas.
ce qui m'ennuie un peu, c'est que, sans le ? fatidique (c'est-a-dire quand l'hyperlien fonctionne), le chemin s'affiche comme ceci dans mon navigateur :
C:\Repertoire\page.html
alors que l'hyperlien apparait comme ceci dans le document writer :
file:///C:/Repertoire/page.html
or, pour que je puisse ouvrir une url locale avec variable dans mon navigateur, il faut que je tape l'adresse imperativement sous la deuxieme forme (l'adresse C:\Repertoire\page.html?var=3 tapee dans la barre d'adresse me produit le meme message d'erreur que lorsque que j'appelle cette adresse depuis mon document writer, alors que l'adresse file:///C:/Repertoire/page.html?var=3 fonctionne).
quelqu'un aurait une idee pour contraindre l'hyperlien a s'ouvrir dans mon navigateur sous la forme file:///c:/etcaetera... ?
merci par avance pour vos reponses.
windowsxp
openoffice 2.4
ie7 et mozilla3
je cherche a generer un hyperlien dans une macro writer vers une url locale comprenant une variable.
j'ai redige une serie de macro qui me permettent d'obtenir une chaine de ce type : vString = repertoireCourant + "page.html"
chaine que j'associe ensuite a mon curseur en utilisant : v.HyperLinkURL = convertToUrl(vString)
jusqu'ici, tout va bien, et ma page page.html s'affiche sans probleme.
en revanche, si j'essaie de passer une variable dans l'url, en ecrivant : vstring = repertoireCourant + "page.html?var=3", rien ne va plus et j'obtiens un message d'erreur :
file:///C:/Repertoire/page.html%3Fvar=3
Le chemin d'accès spécifié n'existe pas.
ce qui m'ennuie un peu, c'est que, sans le ? fatidique (c'est-a-dire quand l'hyperlien fonctionne), le chemin s'affiche comme ceci dans mon navigateur :
C:\Repertoire\page.html
alors que l'hyperlien apparait comme ceci dans le document writer :
file:///C:/Repertoire/page.html
or, pour que je puisse ouvrir une url locale avec variable dans mon navigateur, il faut que je tape l'adresse imperativement sous la deuxieme forme (l'adresse C:\Repertoire\page.html?var=3 tapee dans la barre d'adresse me produit le meme message d'erreur que lorsque que j'appelle cette adresse depuis mon document writer, alors que l'adresse file:///C:/Repertoire/page.html?var=3 fonctionne).
quelqu'un aurait une idee pour contraindre l'hyperlien a s'ouvrir dans mon navigateur sous la forme file:///c:/etcaetera... ?
merci par avance pour vos reponses.
windowsxp
openoffice 2.4
ie7 et mozilla3
Dernière modification par bracho le 03 juil. 2009 18:49, modifié 2 fois.
OpenOffice 3.3.0 sous Windows XP SP2
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
Re: hyperlien comprenant une variable
je precise ma question, desole.
j'ai un peu progresse, et il semble que le probleme vienne du fait que le .hyperLink encode automatique le ? en %3F, ce qui empeche ensuite mon navigateur de comprendre qu'il s'agit d'une requete aux fins de passer une variable (et il cherche donc le fichier nomme page.html?var=3, qui n'existe bien evidemment pas).
comment faire pour empecher cet encodage du ? au moment de la creation de l'hyperlien ?
cela devrait suffire a resoudre mon probleme...
j'ai un peu progresse, et il semble que le probleme vienne du fait que le .hyperLink encode automatique le ? en %3F, ce qui empeche ensuite mon navigateur de comprendre qu'il s'agit d'une requete aux fins de passer une variable (et il cherche donc le fichier nomme page.html?var=3, qui n'existe bien evidemment pas).
comment faire pour empecher cet encodage du ? au moment de la creation de l'hyperlien ?
cela devrait suffire a resoudre mon probleme...
OpenOffice 3.3.0 sous Windows XP SP2
-
bm92
- ManitOOu

- Messages : 2562
- Inscription : 26 nov. 2005 13:42
Re: [Writer]hyperlien comprenant une variable
Bonjour,
Ton adresse est particulière, car elle comporte des arguments destinés à un serveur. En principe l'adresse de fichier devrait être une adresse réseau (genre http://), pas une adresse de fichier local. Et avec une adresse externe, on ne fait pas de conversion URL puisque c'en est une.
Regarde ce qui se passe quand on crée un tel hyperlien avec l'interface utilisateur : quand on tape l'adresse du fichier (Windows), le panneau affiche une conversion en adresse URL. Dès qu'on ajoute le "?" l'adresse n'est plus convertie.
Peut-être que la solution est de ne pas convertir en URL l'adresse. À toi de tester.
Ton adresse est particulière, car elle comporte des arguments destinés à un serveur. En principe l'adresse de fichier devrait être une adresse réseau (genre http://), pas une adresse de fichier local. Et avec une adresse externe, on ne fait pas de conversion URL puisque c'en est une.
Regarde ce qui se passe quand on crée un tel hyperlien avec l'interface utilisateur : quand on tape l'adresse du fichier (Windows), le panneau affiche une conversion en adresse URL. Dès qu'on ajoute le "?" l'adresse n'est plus convertie.
Peut-être que la solution est de ne pas convertir en URL l'adresse. À toi de tester.
Bernard
OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
Re: [Writer]hyperlien comprenant une variable
merci pour ta reponse.
a vrai dire, j'ai deja reduit la creation de l'hyperlien au strict minimum :
vCursor.HyperlinkURL = "file:///C:/Repertoire/page.html?var=3"
ca ne fonctionne malheureusement pas.
je suis alle voir dans le fichier content.xml, et le resultat de ma macro ressemble a ca :
<text:a xlink:type="simple" xlink:href="file:///C:/Repertoire/page.html?var=3" text:style-name="Internet_20_link" text:visited-style-name="Internet_20_link">D4</text:a>
j'en viens donc a la conclusion (mais peut-etre suis-je dans l'erreur) qu'il faudrait que je trouve un moyen de forcer le code "xlink:href" a ne pas %encoder l'adresse.
et ce qui aurait tendance a m'inquieter un peu, c'est que le code html suivant :
<a href="file:///C:/Repertoire/page.html?var=3"> page3 </a>
fonctionne sans difficulte.
j'en viens donc a craindre que ce ne soit une limitation du xml (que je ne parviens pas a forcer).
mais peut-etre ai-je mal compris la suggestion de bernard ?
merci par avance pour votre aide.
edit de 14 heures :
encore plus rageant : si j'exporte mon document au format pdf, mes hyperliens fonctionnent parfaitement.
personne n'aurait une idee pour queles hyperliens fonctionnent de la meme maniere dans un document odt que dans ce meme document odt exporte au format pdf ?
a vrai dire, j'ai deja reduit la creation de l'hyperlien au strict minimum :
vCursor.HyperlinkURL = "file:///C:/Repertoire/page.html?var=3"
ca ne fonctionne malheureusement pas.
je suis alle voir dans le fichier content.xml, et le resultat de ma macro ressemble a ca :
<text:a xlink:type="simple" xlink:href="file:///C:/Repertoire/page.html?var=3" text:style-name="Internet_20_link" text:visited-style-name="Internet_20_link">D4</text:a>
j'en viens donc a la conclusion (mais peut-etre suis-je dans l'erreur) qu'il faudrait que je trouve un moyen de forcer le code "xlink:href" a ne pas %encoder l'adresse.
et ce qui aurait tendance a m'inquieter un peu, c'est que le code html suivant :
<a href="file:///C:/Repertoire/page.html?var=3"> page3 </a>
fonctionne sans difficulte.
j'en viens donc a craindre que ce ne soit une limitation du xml (que je ne parviens pas a forcer).
mais peut-etre ai-je mal compris la suggestion de bernard ?
merci par avance pour votre aide.
edit de 14 heures :
encore plus rageant : si j'exporte mon document au format pdf, mes hyperliens fonctionnent parfaitement.
personne n'aurait une idee pour queles hyperliens fonctionnent de la meme maniere dans un document odt que dans ce meme document odt exporte au format pdf ?
OpenOffice 3.3.0 sous Windows XP SP2
-
bm92
- ManitOOu

- Messages : 2562
- Inscription : 26 nov. 2005 13:42
Re: [Writer]hyperlien comprenant une variable
Tout ce que je peux ajouter, c'est que ce n'est pas un problème de macro mais un problème lié au traitement par OpenOffice.org d'un hyperlien contenant une adresse fichier suivie d'argument.
Parce qu'avec une adresse internet, aucun problème. Par exemple avec
http://user.services.openoffice.org/fr/ ... m.php?f=24
Parce qu'avec une adresse internet, aucun problème. Par exemple avec
http://user.services.openoffice.org/fr/ ... m.php?f=24
Bernard
OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
-
Grenouille
- ManitOOu

- Messages : 3223
- Inscription : 13 janv. 2006 16:21
- Localisation : Chasseneuil-du-Poitou / Futuroscope
Re: [Writer]hyperlien comprenant une variable
Bonsoir,
Il faudrait voir le code plus en détail et si possible l'ODT qui utilise la macro pour comprendre tout provient l'erreur.
A+
Pourtant l'url que tu donnes dispose bien d'un argument (f=24).bm92 a écrit :mais un problème lié au traitement par OpenOffice.org d'un hyperlien contenant une adresse fichier suivie d'argument.
Parce qu'avec une adresse internet, aucun problème. Par exemple avec
http://user.services.openoffice.org/fr/ ... m.php?f=24
Il faudrait voir le code plus en détail et si possible l'ODT qui utilise la macro pour comprendre tout provient l'erreur.
A+
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
Re: [Writer]hyperlien comprenant une variable
merci pour cette reponse.
je pourrais vous communiquer le code, mais je crois vraiment que le probleme se resume a la creation de l'hyperlien.
le mystere s'epaissit d'ailleurs (et me fait craindre que le difficulte vienne d'open office) : j'ai exporte, pour voir, mon fichier au format pdf. et la, les hyperliens fonctionnent sans probleme (ma variable passe par l'url, et je la recupere sans difficulte dans mes javascripts).
serait-ce une 'issue' referencee ?
je pourrais vous communiquer le code, mais je crois vraiment que le probleme se resume a la creation de l'hyperlien.
le mystere s'epaissit d'ailleurs (et me fait craindre que le difficulte vienne d'open office) : j'ai exporte, pour voir, mon fichier au format pdf. et la, les hyperliens fonctionnent sans probleme (ma variable passe par l'url, et je la recupere sans difficulte dans mes javascripts).
serait-ce une 'issue' referencee ?
OpenOffice 3.3.0 sous Windows XP SP2
-
Dude
- IdOOle de la suite

- Messages : 26195
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Writer]hyperlien comprenant une variable
Je ne comprends pas pourquoi tu passes des paramètres à une URL fichier. L'interprétation n'est possible qu'avec une URL de type http (ou https). Cela me semble logique.

Poser une question, c'est bien. Répondre aux autres, c'est encore mieux.
Améliorez AOO et votez pour les issues
Améliorez AOO et votez pour les issues
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
Re: [Writer]hyperlien comprenant une variable
pour resumer, je suis en train de developper une interface pour exploiter des dossiers papier numerises.
je dispose pour chaque dossier d'un materiau brut : une masse de fichiers pdf nommes avec une ou deux lettres suivies de cinq chiffres : A00023.pdf, Ce00258.pdf, ... (sans aucune indication sur le contenu du fichier).
ce point de depart n'est pas modifiable. apres tout est ouvert...
l'idee se decline en deux temps :
- pour permettre la visualisation des dossiers pdf (sans recours a une application commerciale type adobe standard), j'ai cree une page html avec des javascripts qui permettent d'afficher une liste cliquable des fichiers (A0001.pdf, A00002.pdf, etc.), qui creent deux boutons de defilement (avant-arriere) et qui affichent le fichier pdf choisi. je n'ai pas trouve plus souple et plus portable, meme si je reconnais que c'est un peu un detournement du principe du navigateur web (mes fichiers se trouvent soit sur le disque dur local de l'utilisateur, soit sur un lecteur reseau, mais, dans tout les cas, je n'utilise pas le protocole http).
- pour permettre une exploitation plus poussee, je cree un "sommaire', plus ou moins detaille (et que chaque intervenant pourra completer a sa guise) au format openoffice writer. a chaque occurrence de ce qui peut ressembler a un nom de fichier (A25, Ca12, D13), une macro me genere un hyperlien qui doit pointer non pas seulement vers le fichier considere, mais vers la page html de visualisation affichant ce fichier (pour permettre ensuite a l'utilisateur de naviguer dans le dossier).
voila en gros les donnees du probleme.
pour l'instant, j'ai trouve une solution qui fonctionne mais qui est beaucoup trop lourde : la macro qui genere les hyperliens me genere pour chaque hyperlien un fichier html distinct (en fait mon visualisateur integrant la donnee "compteur" correspondant au fichier considere). j'obtiens donc des fichiers vA00001.html, vCa00012.html... vers lesquels pointent mes hyperliens. c'est totalement insatisfaisant parce que ca me genere des milliers de fichiers html qui ont tous le meme contenu a un nombre pres. mais ca a le merite de fonctionner...
la vraie bonne solution, ce serait de ne generer qu'un seul fichier html pour chaque dossier, et que l'hyperlien passe en variable a ce fichier html la reference du fichier concerne. j'en reviens donc a ma question initiale : j'ai besoin de lire un fichier C:/dossiers/dossier1/dossier1.html?Ca00012.pdf ou H:/bureau2/dossier12/dossier12.html?D00002.pdf
c'est donc la raison de ma question (mais je suis preneur de tout autre idee).
ce qui est rageant, c'est que les macros que j'ai redigees fonctionnent a merveille si j'exporte le document au format pdf. et que le document content.xml contient bien un href qui conserve le "?" (ce qui veut dire, si je comprends bien, que le %encodage est effectue au moment de l'interpretation du xml pas au moment ou le code xml est genere par openoffice, ce qui etait l'un de mes espoirs car j'aurais pu envisager d'intervenir directement sur content.xml).
or j'ai besoin de communiquer le document odt pour que chaque intervenant puisse le completer.
je ne comprends pas trop pourquoi l'encodage se fait systematiquement pour une adresse de fichier contenant un "?" (alors que, sauf erreur, un nom de fichier ne peut pas contenir de "?"). et le format pdf m'a l'air plus coherent a cet egard, puisqu'il ne %encode pas le "?".
donc voila : je suis preneur si quelqu'un a une autre idee pour faire ce que je souhaite faire, mais sinon, est-il possible d'eviter ce %encodage par openoffice ?
je dispose pour chaque dossier d'un materiau brut : une masse de fichiers pdf nommes avec une ou deux lettres suivies de cinq chiffres : A00023.pdf, Ce00258.pdf, ... (sans aucune indication sur le contenu du fichier).
ce point de depart n'est pas modifiable. apres tout est ouvert...
l'idee se decline en deux temps :
- pour permettre la visualisation des dossiers pdf (sans recours a une application commerciale type adobe standard), j'ai cree une page html avec des javascripts qui permettent d'afficher une liste cliquable des fichiers (A0001.pdf, A00002.pdf, etc.), qui creent deux boutons de defilement (avant-arriere) et qui affichent le fichier pdf choisi. je n'ai pas trouve plus souple et plus portable, meme si je reconnais que c'est un peu un detournement du principe du navigateur web (mes fichiers se trouvent soit sur le disque dur local de l'utilisateur, soit sur un lecteur reseau, mais, dans tout les cas, je n'utilise pas le protocole http).
- pour permettre une exploitation plus poussee, je cree un "sommaire', plus ou moins detaille (et que chaque intervenant pourra completer a sa guise) au format openoffice writer. a chaque occurrence de ce qui peut ressembler a un nom de fichier (A25, Ca12, D13), une macro me genere un hyperlien qui doit pointer non pas seulement vers le fichier considere, mais vers la page html de visualisation affichant ce fichier (pour permettre ensuite a l'utilisateur de naviguer dans le dossier).
voila en gros les donnees du probleme.
pour l'instant, j'ai trouve une solution qui fonctionne mais qui est beaucoup trop lourde : la macro qui genere les hyperliens me genere pour chaque hyperlien un fichier html distinct (en fait mon visualisateur integrant la donnee "compteur" correspondant au fichier considere). j'obtiens donc des fichiers vA00001.html, vCa00012.html... vers lesquels pointent mes hyperliens. c'est totalement insatisfaisant parce que ca me genere des milliers de fichiers html qui ont tous le meme contenu a un nombre pres. mais ca a le merite de fonctionner...
la vraie bonne solution, ce serait de ne generer qu'un seul fichier html pour chaque dossier, et que l'hyperlien passe en variable a ce fichier html la reference du fichier concerne. j'en reviens donc a ma question initiale : j'ai besoin de lire un fichier C:/dossiers/dossier1/dossier1.html?Ca00012.pdf ou H:/bureau2/dossier12/dossier12.html?D00002.pdf
c'est donc la raison de ma question (mais je suis preneur de tout autre idee).
ce qui est rageant, c'est que les macros que j'ai redigees fonctionnent a merveille si j'exporte le document au format pdf. et que le document content.xml contient bien un href qui conserve le "?" (ce qui veut dire, si je comprends bien, que le %encodage est effectue au moment de l'interpretation du xml pas au moment ou le code xml est genere par openoffice, ce qui etait l'un de mes espoirs car j'aurais pu envisager d'intervenir directement sur content.xml).
or j'ai besoin de communiquer le document odt pour que chaque intervenant puisse le completer.
je ne comprends pas trop pourquoi l'encodage se fait systematiquement pour une adresse de fichier contenant un "?" (alors que, sauf erreur, un nom de fichier ne peut pas contenir de "?"). et le format pdf m'a l'air plus coherent a cet egard, puisqu'il ne %encode pas le "?".
donc voila : je suis preneur si quelqu'un a une autre idee pour faire ce que je souhaite faire, mais sinon, est-il possible d'eviter ce %encodage par openoffice ?
OpenOffice 3.3.0 sous Windows XP SP2
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
Re: [Writer]hyperlien comprenant une variable
bonjour a tous.
j'avais pose il y a quelques temps une question car je ne parvenais pas a creer des hyperliens pointant vers des pages web stockees en local, hyperliens comprenant un parametre (en clair, des hyperliens de cette forme : file:///C:/MonRepertoire/maPageWeb.html?monparametre).
comme je l'indiquais a l'epoque, le probleme reside dans le fait que writer %encode le signe "?", de sorte que mon hyperlien pointe en fait vers file:///C:/MonRepertoire/maPageWeb.html%3Fmonparametre, fichier qui n'existe pas (c'est une specificite de writer : adobe reader, ie ou firefox font tres bien la difference entre un hyperlien vers une adresse http:// - qu'ils %encodent - ou vers une adresse file:/// -qu'ils ne %encodent pas).
c'etait donc ma question, qui n'est toujours pas resolue. et qui commence a me poser un serieux probleme au stade de developpement du projet dans lequel elle se pose.
j'envisage donc de prendre la difficulte a bras le corps en redigeant une macro qui cree (de zero) l'hyperlien (afin de forcer writer a ne pas %encoder ce lien).
quelqu'un s'est-il deja lance dans cette voie ?
merci par avance pour votre aide.
j'avais pose il y a quelques temps une question car je ne parvenais pas a creer des hyperliens pointant vers des pages web stockees en local, hyperliens comprenant un parametre (en clair, des hyperliens de cette forme : file:///C:/MonRepertoire/maPageWeb.html?monparametre).
comme je l'indiquais a l'epoque, le probleme reside dans le fait que writer %encode le signe "?", de sorte que mon hyperlien pointe en fait vers file:///C:/MonRepertoire/maPageWeb.html%3Fmonparametre, fichier qui n'existe pas (c'est une specificite de writer : adobe reader, ie ou firefox font tres bien la difference entre un hyperlien vers une adresse http:// - qu'ils %encodent - ou vers une adresse file:/// -qu'ils ne %encodent pas).
c'etait donc ma question, qui n'est toujours pas resolue. et qui commence a me poser un serieux probleme au stade de developpement du projet dans lequel elle se pose.
j'envisage donc de prendre la difficulte a bras le corps en redigeant une macro qui cree (de zero) l'hyperlien (afin de forcer writer a ne pas %encoder ce lien).
quelqu'un s'est-il deja lance dans cette voie ?
merci par avance pour votre aide.
OpenOffice 3.3.0 sous Windows XP SP2
-
Adrien Schiehle
- Membre OOrganisé

- Messages : 80
- Inscription : 01 juil. 2009 07:24
Re: [Writer]hyperlien comprenant une variable
Bonjour,
je me permet de te renvoyer sur le post de Diarra
http://user.services.openoffice.org/fr/ ... =8&t=17285
Son code permet d'exécuter une commande externe.
En gros ce qui peut t 'interesser c'est
Et contrairement a son code, la variable Adresse tu l'initialise de la manière suivante :
Voila
je me permet de te renvoyer sur le post de Diarra
http://user.services.openoffice.org/fr/ ... =8&t=17285
Son code permet d'exécuter une commande externe.
En gros ce qui peut t 'interesser c'est
Code : Tout sélectionner
sv = createUnoService("com.sun.star.system.SystemShellExecute")
sv.execute(Adresse, "",0)
Code : Tout sélectionner
Adresse = "firefox " + <nom_du_fichier> + "?" + <argument>
OpenOffice 3.2 sous Redhat 4.6
OpenOffice 3.2 sous Windows XP
OpenOffice 3.2 sous Windows XP
-
bracho
- Membre OOrganisé

- Messages : 72
- Inscription : 19 nov. 2007 16:31
Re: [Writer]hyperlien comprenant une variable
Merci beaucoup pour cette réponse.
En fait, j'ai effectivement besoin de lancer une commande externe. En l'occurrence, j'ai choisi de lancer plutôt :
La véritable difficulté résidait dans le fait de lancer cette commande depuis un hyperlien. J'ai fini par m'en sortir (d'une manière pas forcément très élégante) en :
- renvoyant l'hyperlien vers une URL neutre (en fait une URL commençant par # renvoyant donc à une section inexistante dans le présent document),
- et en associant à l'événement "onClick" de l'hyperlien le lancement de la procédure ci-dessus :
Voilà, ça n'est sans doute pas très élégant, mais ça a le mérite de fonctionner.
Je vais donc considérer, sans grande conviction, que mon problème est résolu...
Merci encore pour ta réponse.
En fait, j'ai effectivement besoin de lancer une commande externe. En l'occurrence, j'ai choisi de lancer plutôt :
Code : Tout sélectionner
Sub visionneuseIE()
If (IsEmpty(IE)) then
oObj = createUnoService( "com.sun.star.bridge.OleObjectFactory")
IE = oObj.createInstance("InternetExplorer.Application.1")
End If
oDoc = ThisComponent
oText = oDoc.getText()
oCurseur = oDoc.CurrentController.ViewCursor()
vString = monFichierHtml() + "?" + monParametre(oCurseur.HyperLinkURL) 'le paramètre est calculé à partir de l'URL associée à l'hyperlien de la forme "#D12"
On Error GoTo IEError
IE.Visible = True
IE.Navigate(vString,1)
Exit Sub
IEError:
MsgBox "La fenêtre Internet Explorer a été fermée de manière intempestive." & (Chr(13)) & "Vous devez recharger ce document en sélectionnant 'Recharger' dans le menu 'Fichier'." & (Chr(13)) & "VEILLEZ, SI NECESSAIRE, A SAUVEGARDER AUPARAVANT LES MODIFICATIONS EN COURS" , MB_ICONEXCLAMATION
End Sub
- renvoyant l'hyperlien vers une URL neutre (en fait une URL commençant par # renvoyant donc à une section inexistante dans le présent document),
- et en associant à l'événement "onClick" de l'hyperlien le lancement de la procédure ci-dessus :
Code : Tout sélectionner
Sub insererEvenements()
Dim vDescriptor, vFound, vString, vFoundCursor, tempHyperLinkEvents
'Recherche de toutes les occurrences de la forme A42, D1, C25, Ba13, etc.
vDescriptor = ThisComponent.createSearchDescriptor()
With vDescriptor
.SearchRegularExpression = True
.SearchCaseSensitive = False
.SearchString = "[A-D][a-z]{0,1}[0-9]{1,5}"
End With
vFound = ThisComponent.findFirst(vDescriptor)
Do While Not IsNull(vFound)
vFoundCursor = vFound.Text.createTextCursorByRange(vFound)
vFoundCursor.HyperLinkURL = "#" + vFound.getString() 'je renvoie l'hyperlien vers une URL inactive
' j'associe à l'événément onClick le lancement de la macro visionneuseIE
Dim mEventProps(1) as new com.sun.star.beans.PropertyValue
mEventProps(0).Name = "EventType"
mEventProps(0).Value = "Script"
mEventProps(1).Name = "Script"
mEventProps(1).Value = "vnd.sun.star.script:Standard.Module1.visionneuseIE?language=Basic&location=document"
temp1 = vFoundCursor.HyperLinkEvents
temp1.replaceByName("OnClick", mEventProps())
vFoundCursor.HyperLinkEvents = temp1
vFound = ThisComponent.findNext(vFound.End, vDescriptor)
Loop
End Sub
Je vais donc considérer, sans grande conviction, que mon problème est résolu...
Merci encore pour ta réponse.
OpenOffice 3.3.0 sous Windows XP SP2