Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.
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 !
Dans une petite macro je génère du texte à la volée. J'aimerai mettre en forme ce texte à l'aide d'un style prédéfini (Texte préformaté par ex.) et de base dans Libre Office comme ça pas besoin de vérifier si celui-ci existe. J'ai bien chercher sur le forum mais je n'ai rien trouvé et sur le net on trouve beaucoup de ressource pour Calc mais beaucoup moins pour Writer. Enfin bref voila où j'en suis actuellement:
Sub insertion
Dim oText As Object
Dim oVC As Object
oVC = thisComponent.getCurrentController.getViewCursor
oText = oVC.text
oText.insertString(oVC, "Texte inséré :", False)
oText.insertControlCharacter(oVC, com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK, False)
oText.insertString(oVC, "Nouveau paragraphe avec ", False)
oVC.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.BOLD)
oText.insertString(oVC, "en gras", false)
oVC.setPropertyValue("CharWeight", com.sun.star.awt.FontWeight.NORMAL)
oText.insertString(oVC, "et sans.", false)
End sub
Merci de votre aide.
Dernière modification par clark17 le 06 août 2024 07:16, modifié 3 fois.
Il manque un intitulé. Lors d'une recherche, ce sujet risque de passer inaperçu et donc de ne pas aider d'autres personnes ayant le même problème que vous.
Un titre doit synthétiser votre question et donner envie d'y répondre. Un titre clair et précis augmente vos chances d'obtenir des réponses plus rapidement. Des termes comme, aide, bogue, problème ou OpenOffice étant implicites, n'ont pas besoin d'être mentionnés, de même que macro en section éponyme.
Malheureusement l'autotexte ne convient pas, ma génération de texte est conditionnelle en fonction d'un formulaire. J'ai trouvé ce bout de code qui va bien:
Dim oVC As Object
Dim cursor As Object
Dim oText As Object
oVC = thisComponent.getCurrentController.getViewCursor
cursor = oVC.Text.createTextCursorByRange(oVC)
oText = cursor.Text
' Fixation du style du paragraphe
cursor.ParaStyleName = "Texte préformaté"
' Insertion de l'envoyeur
oText.insertString(cursor, "DE BIDULE" & CHR$(10) & CHR$(10) & "A" & CHR$(10) & CHR$(10), False)
En y réfléchissant je me demande si je ne devrais pas me basé sur un modèle avec des repères sur les points à modifier, puis altérer le texte avec le contenu de mon formulaire. C'est possible de faire ça ?
clark17 a écrit : ↑06 août 2024 07:13
J'ai trouvé ce bout de code qui va bien
On vous a surtout donné la réponse ici : https://ask.libreoffice.org/t/appliquer-un-style-avant-generation-du-texte/109039
C'est assez impoli de s'attribuer le mérite d'un autre.
clark17 a écrit : ↑06 août 2024 07:13me basé sur un modèle
Un modèle a l'extension OTT. Il suffit de l'enregistrer dans ce format