Voici le contexte dans le cadre duquel je pose ma question: je dispose d'une fiche technique au format PDF dont la table des matières ne comporte aucun hyperlien vers les pages indexées. Comme il s'agit d'un document de 300 pages et que je suis en train d'écrire du code (pour un projet personnel, ça n'a rien de professionnel) pour ce type de matériel, c'est relativement pénible de faire la recherche à la main depuis la table des matières. Je me suis donc décidé à modifier le document en l'important dans LibreOffice Draw... Le seul inconvénient est que le faire à la main risque de me prendre des jours, voire des semaines car l'ouverture ou l'enregistrement du document prennent plusieurs dizaines de secondes (mon ordi est un Core i5, d'environ 10 ans).
Les tâches que je me suis fixées sont, au travers de macros (Python ou Basic, peu m'importe):
- ajouter un hyperlien sur le numéro de page vers la page correspondante — d'après ce que je comprends, le texte de l'hyperlien est juste "#<numero de page>";
- modifier le nom de la police de la forme 3 sur chaque page; la police de l'élément importé est incorrecte, nommée ArialBlack dans le document, elle est remplacée par "Liberation Sans"... alors que j'ai ajouté la substitution de police "ArialBlack" -> "Nimbus Sans Black" dans les options (avec ou sans espace dans "Arial Black", ça ne change rien et j'ignore pourquoi);
- modifier la taille de la police de la forme 4 sur chaque page, elle ne doit pas dépasser la ligne se trouvant au-dessus et doit passer de 9.9pt à 9.5pt;
- accessoirement remplacer les points dans les éléments texte comprenant les numéros de page par une tabulation droite (en gardant le numéro de page, bien entendu) et en modifiant le style pour inclure des points de guidage (je ne sais pas si c'est ainsi qu'on les appelle) et en ajustant la position de la tabulation pour que les numéros de pages soient tous alignés verticalement. Ce dernier point est d'ordre cosmétique mais je suis curieux de savoir comment y parvenir de manière programmée.
Jusqu'à présent, j'ai compris comment lister les éléments d'une page dans un document Draw mais je ne parviens pas à trouver la moindre information sur la façon d'insérer un hyper-lien dans un cadre de type texte sous Draw. Les seules références que j'aie pu trouver concernent Calc ou Writer. J'ai découvert, par hasard, la barre d'outils de développement alors que je cherchais à comprendre comment le document est structuré. En revanche, je ne parviens pas non plus à localiser l'hyperlien dans le cadre de texte via cet outil — j'ai compris comment récupérer (lire) toutes les autres informations, celle-ci est la seule exception.
J'ai joint le fichier sur lequel je fais mes essais. il s'agit de la page 4 de la fiche technique et mon code devrait s'y trouver: (Ça m'a pris environ deux jours pour parvenir à ces quelques lignes de code.)
Je me suis naïvement imaginé que pour modifier la police d'un élément de texte, il suffisait de modifier, via code, la propriété Text.CharFontName de l'élément concerné... mais ça ne fonctionne pas et la police reste inchangée dans le document.
Disclaimer: je suis conscient, pour avoir lu les conditions requises avant de "faire mes emplettes", qu'il convient que je réponde d'abord avant de vouloir me satisfaire (si j'ose dire) mais mon expérience avec cette suite bureautique est relativement limitée. La dernière fois que j'ai tenté d'ajouter du code à un document, c'était il y a 30 ans avec Microsoft Office 2.0 pour écrire un assistant (Document Wizard) et j'ai vite abandonné, trop compliqué... Mes connaissances ne sont donc pas fraîches du tout — je suis développeur de formation mais dans l'embarqué et en C et C++. Je vais donc faire de mon mieux pour contribuer au sein de cette communauté mais je ne promets rien.
Les tâches que je me suis fixées sont pour des finalités personnelles, non dans un but commercial. J'ai récupéré le document PDF ("Andrew's Macro Information") concernant la programmation mentionné dans ce forum mais je n'y ai pas trouvé les renseignements que je cherche sur la manière de mettre en œuvre les étapes que j'ai énumérées — j'avoue cependant ne l'avoir parcouru que rapidement, il est quasiment aussi volumineux que la fiche technique dont j'essaie de modifier la table des matières...
Je ne souhaite pas que vous écriviez le code pour moi, vous avez autre chose à faire, j'en suis parfaitement conscient. Ce dont j'ai besoin, je suppose et je l'espère, c'est de quelques pistes sur la façon de modifier des éléments de texte dans LO Draw. À partir de quelques liens, je pense que j'arriverai à me débrouiller.
Merci d'avance pour toute information.