[Résolu][Base] Export PDF de rapport et hyperlien relatif
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 !
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
[Résolu][Base] Export PDF de rapport et hyperlien relatif
Bonjour à tous,
Je suis en train de faire une application qui permet de gérer du matériel avec plusieurs données dont leur facture et leur notice.
Cette application sera sur le cloud pour pouvoir être utilisée par plusieurs personnes et respecteras la même structure (.odb et fichiers des notices et factures dans le même répertoire)
Pour le moment j'ai réussi à créer des rapports avec des hyperliens grâce à Dude (https://forum.openoffice.org/fr/forum/v ... en#p345228).
J'actualise les liens avant la création du rapport pour que ceux-ci soit en fonction de l'emplacement du dossier dans l'arborescence de l'utilisateur.
J'ai aussi réussi grâce au forum à exporter des rapports en PDF via un bouton (les liens sont affichés sous forme de texte avec l'URL du fichier)
Mon objectif maintenant serait de combiner les deux et de pouvoir exporter mes rapports directement via un bouton et qu'ils comprennent des hyperliens plutôt que juste le texte du lien.
Et ce qui serait sublime c'est que ces hyperliens sur le PDF soit relatifs à l'emplacement du .odb et que l'on ne soit pas obligé de relancer l'export pour les actualiser.
En PJ une base exemple avec une table comprenant des liens, un formulaire pour la remplir, et un formulaire principal depuis lequel on peut ouvrir le rapport (avec les hyperliens), et exporter en PDF.
(Il faudra pour test modifier les liens des fichiers)
Merci
Martin
Je suis en train de faire une application qui permet de gérer du matériel avec plusieurs données dont leur facture et leur notice.
Cette application sera sur le cloud pour pouvoir être utilisée par plusieurs personnes et respecteras la même structure (.odb et fichiers des notices et factures dans le même répertoire)
Pour le moment j'ai réussi à créer des rapports avec des hyperliens grâce à Dude (https://forum.openoffice.org/fr/forum/v ... en#p345228).
J'actualise les liens avant la création du rapport pour que ceux-ci soit en fonction de l'emplacement du dossier dans l'arborescence de l'utilisateur.
J'ai aussi réussi grâce au forum à exporter des rapports en PDF via un bouton (les liens sont affichés sous forme de texte avec l'URL du fichier)
Mon objectif maintenant serait de combiner les deux et de pouvoir exporter mes rapports directement via un bouton et qu'ils comprennent des hyperliens plutôt que juste le texte du lien.
Et ce qui serait sublime c'est que ces hyperliens sur le PDF soit relatifs à l'emplacement du .odb et que l'on ne soit pas obligé de relancer l'export pour les actualiser.
En PJ une base exemple avec une table comprenant des liens, un formulaire pour la remplir, et un formulaire principal depuis lequel on peut ouvrir le rapport (avec les hyperliens), et exporter en PDF.
(Il faudra pour test modifier les liens des fichiers)
Merci
Martin
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Bonjour,
Je ne voit pas en quoi ce fil répond à mon problème d'avoir des hyperlien lors de l'export PDF.
Ce fil semble traiter de la création du formulaire PDF.
Moi mon PDF ne serait qu'une impression des mes rapports avec des liens cliquables vers d'autre fichier.
Merci
Martin
Je ne voit pas en quoi ce fil répond à mon problème d'avoir des hyperlien lors de l'export PDF.
Ce fil semble traiter de la création du formulaire PDF.
Moi mon PDF ne serait qu'une impression des mes rapports avec des liens cliquables vers d'autre fichier.
Merci
Martin
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Non, le fil contient un script pour l'export PDF.
Maintenant, pourquoi faire ?
Lorsque le rapport est affiché, le bouton existe : Et si des hyperliens sont sur le document, ils sont exportés comme tels.
Maintenant, pourquoi faire ?
Lorsque le rapport est affiché, le bouton existe : Et si des hyperliens sont sur le document, ils sont exportés comme tels.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
En effet je sais que l'on peut exporter en PDF depuis le rapport "writer".
Néanmoins j'aimerais, si possible, le faire depuis un bouton de mon formulaire principal pour une utilisation plus "conviviale" : export direct dans un répertoire prédéfini.
De plus j'aimerais que ces liens dans le PDF soient relatifs au répertoire de mon .odb. Le rapport "writer" se faisant dans un fichier temporaire, les liens dans le pdf sont relatifs à celui-ci (et non le odb).
J'ai essayé grâce au service "PathSetting" de modifier l'emplacement des fichiers temporaires mais où que soit le dossier temporaire les liens sont relatifs à celui-ci et pour qu'ils restent valables il faut donc que le fichier pdf soit enregistré dans ce dossier temporaire.
A moins que : Est-il possible de définir un chemin d'enregistrement des fichiers temporaires sans que création d'un nouveau dossier ?
Martin
Néanmoins j'aimerais, si possible, le faire depuis un bouton de mon formulaire principal pour une utilisation plus "conviviale" : export direct dans un répertoire prédéfini.
De plus j'aimerais que ces liens dans le PDF soient relatifs au répertoire de mon .odb. Le rapport "writer" se faisant dans un fichier temporaire, les liens dans le pdf sont relatifs à celui-ci (et non le odb).
J'ai essayé grâce au service "PathSetting" de modifier l'emplacement des fichiers temporaires mais où que soit le dossier temporaire les liens sont relatifs à celui-ci et pour qu'ils restent valables il faut donc que le fichier pdf soit enregistré dans ce dossier temporaire.
A moins que : Est-il possible de définir un chemin d'enregistrement des fichiers temporaires sans que création d'un nouveau dossier ?
Martin
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Bis repetitae :MartinAV a écrit :export direct dans un répertoire prédéfini.
Dude a écrit :le fil contient un script pour l'export PDF.
Pour récupérer le chemin complet d'un ODB, tu utilises sa propriété URL :MartinAV a écrit :De plus j'aimerais que ces liens dans le PDF soient relatifs au répertoire de mon .odb.
Code : Tout sélectionner
MsgBox ThisDatabaseDocument.URL-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Après plusieurs tests j'ai finalement réussi à exporter le PDF avec les hyperliens créés.
Problème : les hyperliens créés sont absolus et non pas relatifs comme souhaité.
J'ai modifié dans "Outils > Options > Chemin" le répertoire des Fichiers Temporaires pour le mettre dans le répertoire du odb.
Lors de la création du rapport avec les hyperliens et export en PDF via le bouton dédié dans "Writer" j'ai bien des liens relatifs : ils restent valables lors du déplacement du dossier contenant le odb, les fichiers vers lesquels pointent les liens et le PDF exporter.
En revanche lors de la création du PDF via la macro, mes liens sont absolus (et deviennent caduques au déplacement du dossier). Comment les rendre relatifs ? Une propriété à ajouter dans le PropsFiltre ? J'ai cherché je n'ai pas trouvé laquelle ...
Martin
Code : Tout sélectionner
Sub convertirRapportPDF(oEv as Object)
Dim nomPDF as String,adresseDoc As String
Dim props As Variant, propsFiltre As Variant
nomPDF = oEv.Source.Model.Tag & ".pdf"
propsFiltre = CreateProperties(Array( _
"UseLossLessCompression", True, _
"FormsType", 1, _
"SelectPdfVersion",1, _
"ExportNotes", True, _
"InitialView", 1, "PageLayout", 3, _
"DisplayPDFDocumentTitle", False, _
"PDFViewSelection", 1, _
"ViewPDFAfterExport",1 ))
props = CreateProperties(Array("FilterName", "writer_pdf_Export", "FilterData", propsFiltre() ))
fichier = thisComponent.parent.URL
Chemin = Left(fichier, Len(fichier) - Len(Dir(ConvertFromURL(fichier))))
adresseDoc = convertToURL(chemin & nomPDF)
oRapport = EcrireUrlDansRapport
oRapport.storeToURL(adresseDoc, props())
oRapport.CurrentController.Frame.close(True)
MsgBox("Le rapport est exporté",64)
End Sub
Sub EcrireUrlDansRapport as Object
'Du code offert par le forum OpenOffice
'https://forum.openoffice.org/fr/forum/ftopic63263.html
oODB = Thisdatabasedocument
oCtrl = oODB.currentController
Call Actualisation_lien
if not oCtrl.isconnected then oCtrl.connect
oRapport = oODB.reportdocuments.getbyname("RapportFichier")
oDude = oRapport.open
oDetail = oDude.TextTables.getByName("Detail")
For i = 0 to oDetail.Rows.Count -1
oCell = oDetail.getCellByPosition(1, i) 'Colonne / ligne
oText = oCell.Text
oCurs = oText.createTextCursor()
oURL = "file://" & oText.String
With oCurs
.gotoEnd(True)
.setString("Cliquez ici")
.gotoStart(False)
.gotoEnd(True)
.HyperLinkURL = oURL
End with
Next i
EcrireUrlDansRapport = oDude
End Sub
Problème : les hyperliens créés sont absolus et non pas relatifs comme souhaité.
J'ai modifié dans "Outils > Options > Chemin" le répertoire des Fichiers Temporaires pour le mettre dans le répertoire du odb.
Lors de la création du rapport avec les hyperliens et export en PDF via le bouton dédié dans "Writer" j'ai bien des liens relatifs : ils restent valables lors du déplacement du dossier contenant le odb, les fichiers vers lesquels pointent les liens et le PDF exporter.
En revanche lors de la création du PDF via la macro, mes liens sont absolus (et deviennent caduques au déplacement du dossier). Comment les rendre relatifs ? Une propriété à ajouter dans le PropsFiltre ? J'ai cherché je n'ai pas trouvé laquelle ...
Martin
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Ton code
Alors que je t'écris...

Et on ne comprend pas ton histoire de chemin relatif. Les liens PDF doivent être comment.
Merci d'indiquer des exemples concrets.
Code : Tout sélectionner
fichier = thisComponent.parent.URL
Chemin = Left(fichier, Len(fichier) - Len(Dir(ConvertFromURL(fichier))))Dude a écrit :Pour récupérer le chemin complet d'un ODB, tu utilises sa propriété URL :Tu as ensuite la fonction DirectoryNameoutofPath issue de la bibliothèque Tools pour récupérer le chemin sans le fichierCode : Tout sélectionner
MsgBox ThisDatabaseDocument.URL
Mauvais idée : cela veut dire que tout va être sauvegardé dans ce répertoire.J'ai modifié dans "Outils > Options > Chemin" le répertoire des Fichiers Temporaires pour le mettre dans le répertoire du odb.
Et on ne comprend pas ton histoire de chemin relatif. Les liens PDF doivent être comment.
Merci d'indiquer des exemples concrets.
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Merci pour ton aide.
Ma base de donnée est dans un répertoire "Inventaire" tel que :
Mon objectif est que lors de l'export PDF de mon rapport les liens pointent vers les notices correspondantes de façon relative à l'emplacement de Inventaire.odb.
Qu'ils pointent vers : Dossier_notice/Notice1.pdf et non pas vers Home/Martin/Documents/Inventaire/Dossier_Notice/Notice1.pdf
Le but de tout ça étant que ce dossier Inventaire sera partagé entre plusieurs utilisateurs/machine et donc la partie absolue (Home/Martin/Documents) sera différente à chaque fois.
Je cherche donc à ce que les liens du PDF pointent vers le bon fichier (qui sont tous rangé dans un dossier enfant de celui où est le .odb). Et ce sans avoir besoin de relancer l'export du PDF.
D'après mes tests, lorsque l'on crée un rapport il s'enregistre temporairement dans un dossier défini par le chemin "Fichier Temporaire", et donc lors de l'export de celui-ci en PDF via le bouton dédié de "writer", bien que l'option Enregistrer les URL relatifs au système de fichier soit activée les liens PDF créés sont relatifs à l'emplacement du dossier "Fichier Temporaire" et non pas à l'emplacement de Inventaire.odb. C'est pourquoi j'avais tenté de changer l'emplacement des "Fichier Temporaires".
Et cette technique semble plutôt bien fonctionner pour l'export depuis le rapport "Writer".
En revanche elle ne fonctionne pas pour l'export direct depuis un bouton sur le formulaire principal : les liens y sont absolu (Home/Martin/...)
Ma base de donnée est dans un répertoire "Inventaire" tel que :
- Home/Martin/Documents
- Inventaire
- Inventaire.odb
- Dossier_notice
- Notice1.pdf
- Notice2.pdf
- ...
- Inventaire
Mon objectif est que lors de l'export PDF de mon rapport les liens pointent vers les notices correspondantes de façon relative à l'emplacement de Inventaire.odb.
Qu'ils pointent vers : Dossier_notice/Notice1.pdf et non pas vers Home/Martin/Documents/Inventaire/Dossier_Notice/Notice1.pdf
Le but de tout ça étant que ce dossier Inventaire sera partagé entre plusieurs utilisateurs/machine et donc la partie absolue (Home/Martin/Documents) sera différente à chaque fois.
Je cherche donc à ce que les liens du PDF pointent vers le bon fichier (qui sont tous rangé dans un dossier enfant de celui où est le .odb). Et ce sans avoir besoin de relancer l'export du PDF.
D'après mes tests, lorsque l'on crée un rapport il s'enregistre temporairement dans un dossier défini par le chemin "Fichier Temporaire", et donc lors de l'export de celui-ci en PDF via le bouton dédié de "writer", bien que l'option Enregistrer les URL relatifs au système de fichier soit activée les liens PDF créés sont relatifs à l'emplacement du dossier "Fichier Temporaire" et non pas à l'emplacement de Inventaire.odb. C'est pourquoi j'avais tenté de changer l'emplacement des "Fichier Temporaires".
Et cette technique semble plutôt bien fonctionner pour l'export depuis le rapport "Writer".
En revanche elle ne fonctionne pas pour l'export direct depuis un bouton sur le formulaire principal : les liens y sont absolu (Home/Martin/...)
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Ca va être compliqué puisque Base est mono-utilisateur.MartinAV a écrit :Le but de tout ça étant que ce dossier Inventaire sera partagé entre plusieurs utilisateurs/machine
Mais bon, puisqu'il va s'agir d'un répertoire partagé. A quoi va servir un chemin relatif ?
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Le répertoire Inventaire va être partagé via une Dropbox ou autre. Plusieurs personne (une petite dizaine grand max) l'auront donc sur leur ordi.
Certains seront Gestionnaire et auront donc accès au .odb.
Tandis que d'autre ne seront que Consultateur et n'auront accès que au PDF du rapport. D'où le fait que je souhaiterais que les hyperliens dans ce PDF soit relatifs au répertoire Inventaire et donc valable chez tout ceux qui ont accès à ce dossier.
Certains seront Gestionnaire et auront donc accès au .odb.
Tandis que d'autre ne seront que Consultateur et n'auront accès que au PDF du rapport. D'où le fait que je souhaiterais que les hyperliens dans ce PDF soit relatifs au répertoire Inventaire et donc valable chez tout ceux qui ont accès à ce dossier.
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
As-tu lu ce que j'ai écrit ? Ton ODB ne peut être ouvert qu'en accès exclusif.MartinAV a écrit :Plusieurs personne (une petite dizaine grand max) l'auront donc sur leur ordi.
Toujours pas compris : comment peux-tu atteindre le Dossier_notice sans passer par Inventaire ?MartinAV a écrit :Qu'ils pointent vers : Dossier_notice/Notice1.pdf et non pas vers Home/Martin/Documents/Inventaire/Dossier_Notice/Notice1.pdf
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Le fichier ne sera pas ouvert en même temps par plusieurs personnes, donc pas de problème de ce côté là.Dude a écrit : As-tu lu ce que j'ai écrit ? Ton ODB ne peut être ouvert qu'en accès exclusif.
Le PDF du rapport étant dans le dossier Inventaire, on peut atteindre Dossier_notice/Notice1.pdf sans passer par Inventaire (une URL relative).Dude a écrit : Toujours pas compris : comment peux-tu atteindre le Dossier_notice sans passer par Inventaire ?
J'ai fait le test avec des documents writer et l'arborescence suivante :
- Home/Martin/Bureau
- TEST
- NOTICE
- Notice1.pdf
- test.odt
- test.pdf
- NOTICE
- TEST
Dans test.odt j'ai créé un hyperlien vers Notice1.pdf. Writer étant paramétré pour "Enregistrer les URL relatifs au système de fichier" (Outils > Option > Chargement/Enregistrement > Général), lors de l'export pdf de celui-ci le lien pointe vers NOTICE/Notice1.pdf et non pas Home/Martin/Bureau/TEST/NOTICE/Notice1.pdf : l'URL est relative.
Cela permet que si l'on déplace le dossier TEST vers par exemple Home/Martin/Document, le lien du PDF ouvre bien Notice1.pdf. l'URL relative de Notice1.pdf par rapport à test.pdf est inchangée bien que son URL absolue ai été modifiée (elle est passé de Bureau à Document).
Pour revenir à mon problème initial et ma base de donnée c'est ces hyperliens relatifs lors de l'export PDF que j’essaie de mettre en place.
Cela fonctionne lors de la création du rapport avec les hyperliens puis export PDF avec le bouton dédié, en modifiant l'emplacement des "Fichiers Temporaires" pour le répertoire courant du .odb. (Pour moi ça vient du fait que le rapport se crée de manière temporaire donc les URL des hyperliens sont relatives à ce fichier temporaire d'où la nécessité d'avoir se fichier temporaire dans le répertoire du .odb pour répondre à mon problème)
En revanche cela ne fonctionne pas lors de l'export direct en PDF depuis mon formulaire menu principal. C'est là que je bute...
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Après avoir continué à tester différentes solutions directement à partir d'un document writer ma question revient à :
Comment garder un adressage relatifs des hyperliens via l'export par macro, comme il se fait via l'export par le bouton dédié ?
Comment garder un adressage relatifs des hyperliens via l'export par macro, comme il se fait via l'export par le bouton dédié ?
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Redif de mon message du 16/12/20
Si tu sais que la localisation des PDF est dans un répertoire enfant de l'ODB, il suffit de faire :
Si tu sais que la localisation des PDF est dans un répertoire enfant de l'ODB, il suffit de faire :
Code : Tout sélectionner
GlobalScope.BasicLibraries.loadLibrary("Tools")
sRep = DirectoryNameoutofPath(ThisComponent.URL, "/") & "/Dossier_notice/"-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Bonjour,
J'ai essayé ta solution mais cela ne change pas mon problème : une fois les liens créer, l'export PDF via la macro crée des liens absolus et non relatifs. Le dossier entier (OdB + Notice + Rapport PDF) ne peut être déplacé en conservant l'intégrité des liens du rapport PDF sans relancer son export.
Je ne sais pas si tu reproduis mon problème :
J'ai essayé ta solution mais cela ne change pas mon problème : une fois les liens créer, l'export PDF via la macro crée des liens absolus et non relatifs. Le dossier entier (OdB + Notice + Rapport PDF) ne peut être déplacé en conservant l'intégrité des liens du rapport PDF sans relancer son export.
Je ne sais pas si tu reproduis mon problème :
- Suite à la création d'un rapport via macro pour y intégrer des hyperliens :
- Si je l'exporte via le bouton dédié de writer les hyperliens présents dans le PDF sont relatifs au dossier du ODB
- Si je l'exporte via une macro (ce qui me permet de prédéfinir le chemin de l'export), les hyperliens présent dans le PDF sont absolues
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
N'est-ce pas là l'intérêt d'une base de données : générer des informations à un instant T pour que ces dernières soient à jour.MartinAV a écrit :Le dossier entier (OdB + Notice + Rapport PDF) ne peut être déplacé en conservant l'intégrité des liens du rapport PDF sans relancer son export.
Si tu veux faire une liste statique, tu génères ton PDF avec Writer.
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Il s'agit d'une base de gestion d'EPI pour asso. Cette base doit être gérée par un membre du bureau et accessible à tout le bureau.
J'y voyais l’intérêt de pouvoir pour :
Ce que je trouve étrange ce de pas réussir à reproduire par macro une action qui marche via le bouton dédié "exporter direct au format PDF" sur le writer du rapport.
Mais tant pis si ce n'est pas réalisable je ferais sans.
Merci pour ton aide et belle fin d'année.
Martin
J'y voyais l’intérêt de pouvoir pour :
- Les gestionnaires de la bdd, exporter un PDF à chaque mise à jour de la base.
- Les "consultateurs" ouvrir le PDF et naviguer vers les notices via des hyperliens qui sont fonction du dossier du odb (liens relatifs) et non de la racine du système. Le tout sans nécessairement avoir LOBase installé sur son ordi.
Ce que je trouve étrange ce de pas réussir à reproduire par macro une action qui marche via le bouton dédié "exporter direct au format PDF" sur le writer du rapport.
Mais tant pis si ce n'est pas réalisable je ferais sans.
Merci pour ton aide et belle fin d'année.
Martin
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
OOotremer971
- ManitOOu

- Messages : 2791
- Inscription : 16 avr. 2010 13:31
Re: [Base] Export PDF d'un rapport et hyperlien
Bonjour,
Dans ton tableau des propriétés d'export, as-tu testé :
Une bonne dose de détails ici : https://wiki.openoffice.org/wiki/API/PDF_export
Genre (non testé) :
A+
Dans ton tableau des propriétés d'export, as-tu testé :
Code : Tout sélectionner
ExportLinksRelativeFsysGenre (non testé) :
Code : Tout sélectionner
propsFiltre = CreateProperties(Array( _
"UseLossLessCompression", True, _
"FormsType", 1, _
"SelectPdfVersion",1, _
"ExportNotes", True, _
"ExportLinksRelativeFsys", True, _
"InitialView", 1, "PageLayout", 3, _
"DisplayPDFDocumentTitle", False, _
"PDFViewSelection", 1, _
"ViewPDFAfterExport",1 ))En principe, toujours à jour des dernières versions dites stables
AOO
LibreOffice
Debian GNU/Linux 12 (bookworm)
AOO
LibreOffice
Debian GNU/Linux 12 (bookworm)
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
C'est exactement ce qu'il me manquait pour que ça (presque) marche.OOotremer971 a écrit :Code : Tout sélectionner
ExportLinksRelativeFsys
Cet export PDF se faisant à partir d'un rapport généré automatiquement (donc dans des dossiers temporaires), la relativité des liens ce fait à partir d'un dossier obscur au fin fond de la racine.
Pour pallier à cela, je modifie par macro le dossier temporaire
Code : Tout sélectionner
PathSetting.Temp = chemin de la base de donneeJ'ai donc essayé une deuxième méthode : enregistrer le rapport avant l'export.
Code : Tout sélectionner
Sub EnregistrerRapport(oDoc, sFile)
sURL = convertToURL(sFile)
oDoc.storeAsURL(sURL, array())
End subJe m'explique :
Les liens du rapport enregistré pointent vers des PDF d'un dossier enfant qui s'appelle notice. Donc en URL relative ca donne normalement "/Notice/*.pdf"
Et c'est bien ce qu'il se passe lors de l'export avec le bouton dédié de Writer.
En revanche avec la macro les liens pointent vers "../Notice/*PDF". C'est ce "../" qui me pose problème et que je ne m'explique pas.
J'ai réussi à contourner ce soucis en exportant le PDF dans un autre dossier enfant pour que le "../Notice/*.pdf" marche correctement mais j'aimerais comprendre la logique de la chose.
Martin
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Export PDF d'un rapport et hyperlien
Bonjour,
Bonne journée,
Ça, c'est absolu par rapport à la racine, en relatif c'est "./Notice/*.pdf"MartinAV a écrit :Donc en URL relative ca donne normalement "/Notice/*.pdf"
Bonne journée,
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
C'est plutôt "Notice/*pdf" non ? En tout cas c'est ce que fait l'exportation PDF du bouton dédié sur writer avec les pdf qui sont dans un dossier enfant "Notice" de la source (le odt).
Et bizarrement l'export de la même source mais via la macro pointe vers "../Notice/*pdf". Le lien ne marche donc pas puisqu'il cherche le dossier "Notice" dans le dossier parent de celui où est le odt.
Comme je disais je contourne ce problème en exportant le PDF dans un dossier enfant de celui du odt comme cela le "../Notice/*pdf" revient dans le dossier du odt, puis va dans le dossier "Notice".
Mais je ne comprends pas la logique et j'aimerais la comprendre. Ou est-ce juste un bug ?
Et bizarrement l'export de la même source mais via la macro pointe vers "../Notice/*pdf". Le lien ne marche donc pas puisqu'il cherche le dossier "Notice" dans le dossier parent de celui où est le odt.
Comme je disais je contourne ce problème en exportant le PDF dans un dossier enfant de celui du odt comme cela le "../Notice/*pdf" revient dans le dossier du odt, puis va dans le dossier "Notice".
Mais je ne comprends pas la logique et j'aimerais la comprendre. Ou est-ce juste un bug ?
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Je vais encore me répéter :MartinAV a écrit :Ce que je trouve étrange ce de pas réussir à reproduire par macro une action qui marche via le bouton dédié "exporter direct au format PDF" sur le writer du rapport.
Rien ne t'empêche de le connecter à ton ODB.Dude a écrit :Si tu veux faire une liste statique, tu génères ton PDF avec Writer.
Je viens de faire un essai avec ton document.MartinAV a écrit :l'export PDF via la macro crée des liens absolus et non relatifs.
Les données dans la table correspondent à des données dont le chemin est incorrect.
Le PDF généré ne contient aucune URL cliquable :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
-
jeanmi2403
- SuppOOrter

- Messages : 1485
- Inscription : 18 janv. 2008 09:02
- Localisation : Val de Marne
Re: [Base] Export PDF d'un rapport et hyperlien
Bonsoir
D'ailleurs, il est impossible d'exécuter un fichier Linux depuis le répertoire courant sans faire précéder son nom de "./".
Tu peux poser un exemple de ta dernière version ? J'aimerais comprendre aussi !!
Bonne soirée,
PS : Dans ton premier exemple, il y a un mélange de dossiers système et d'Url. Je n'ai pas regardé plus loin...
Le point "." représente le répertoire courant, ".." le parent. "Notice" et "./Notice" devraient être équivalents, mais ça dépend du contexte. "./" assure qu'il s'agit du répertoire courant.MartinAV a écrit :C'est plutôt "Notice/*pdf" non ?
D'ailleurs, il est impossible d'exécuter un fichier Linux depuis le répertoire courant sans faire précéder son nom de "./".
Tu peux poser un exemple de ta dernière version ? J'aimerais comprendre aussi !!
Bonne soirée,
PS : Dans ton premier exemple, il y a un mélange de dossiers système et d'Url. Je n'ai pas regardé plus loin...
Jean-Michel
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
LibO 25.2 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 24.8 sur OpenSuse & Linux MX
-
MartinAV
- NOOuvel adepte

- Messages : 24
- Inscription : 26 oct. 2020 16:53
Re: [Base] Export PDF d'un rapport et hyperlien
Mon fichier est joint. Pour le tester il te faudra :
Dans MENU PRINCIPAL le bouton "Impression rapport PDF" va créer dans le dossier "TEST" un fichier rapport.odt et un "rapport_fichier.pdf".
Le problème est que les liens du pdf pointent vers "../Notice/*.pdf" et ne fonctionnent donc pas alors que ceux du odt (après export par le bouton dédié de writer) pointent vers "Notice/*.pdf"
- Le mettre dans un dossier "TEST"
- Dans ce dossier, un dossier "Notice"
- Dans ce dossier notice des fichiers pdf
- Dans ce dossier, un dossier "Notice"
- Mettre les bons liens vers les pdf de "Notice" dans la table tFichier via le formulaire FmFichier
Dans MENU PRINCIPAL le bouton "Impression rapport PDF" va créer dans le dossier "TEST" un fichier rapport.odt et un "rapport_fichier.pdf".
Le problème est que les liens du pdf pointent vers "../Notice/*.pdf" et ne fonctionnent donc pas alors que ceux du odt (après export par le bouton dédié de writer) pointent vers "Notice/*.pdf"
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Ubuntu 20.04.1 LTS
LibreOffice Version: 7.1.1.2
LibreOffice Version: 7.1.1.2
-
Dude
- IdOOle de la suite

- Messages : 26201
- Inscription : 03 mars 2006 07:45
- Localisation : 127.0.0.1
Re: [Base] Export PDF d'un rapport et hyperlien
Ton problème est que tu ne lis pas ce que je t'écris.MartinAV a écrit :Le problème est que les liens du pdf pointent vers "../Notice/*.pdf"
Les URL dans ta table sont incorrectes (revoir ma copie écran).
Ensuite, il suffit de passer la bonne chaîne pour que cela fonctionne en démarrant avec file://.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.