[Writer] Appliquer un style avant génération du texte

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: 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 !
clark17
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 22 avr. 2006 19:22

[Writer] Appliquer un style avant génération du texte

Message par clark17 »

Bonjour à toutes et tous,

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:

Code : Tout sélectionner

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.
LibreOffice 7.5.7.1 - WINDOWS 10
Avatar de l’utilisateur
micmac
RespOOnsable forum
RespOOnsable forum
Messages : 10152
Inscription : 28 août 2010 08:45

Re: [WRITER]

Message par micmac »

Bonjour,

Le titre de votre sujet n'est pas conforme.
  1. Revoir la règle de balisage Balisez votre question
  2. 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.

    Voici des astuces pour avoir un titre optimum : viewtopic.php?p=1002#p1002
Merci donc de le modifier au plus tôt. Si cela n'est pas fait lors de votre prochain message, le sujet sera verrouillé.
Touche Ctrl de Windows = touche cmd⌘ sur Mac
OpenOffice > Outils > Options sur Windows = OpenOffice > Préférences sur macOS
clark17
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 22 avr. 2006 19:22

Re: [WRITER] Appliquer un style avant génération du texte

Message par clark17 »

C'est corrigé, désolé pour l'inattention.
LibreOffice 7.5.7.1 - WINDOWS 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26242
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Appliquer un style avant génération du texte

Message par Dude »

Salut,

Comme d'habitude, publier le code c'est bien mais ça ne suffit pas.
Merci de fournir un document.
clark17 a écrit : ↑05 août 2024 12:12 Dans une petite macro je génère du texte à la volée.
Pas besoin de macro, il suffit d'utiliser les autotextes.
clark17
NOOuvel adepte
NOOuvel adepte
Messages : 21
Inscription : 22 avr. 2006 19:22

Re: [Writer] Appliquer un style avant génération du texte

Message par clark17 »

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:

Code : Tout sélectionner

	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 ?
LibreOffice 7.5.7.1 - WINDOWS 10
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 26242
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: [Writer] Appliquer un style avant génération du texte

Message par Dude »

Bis repetitae :
Dude a écrit : ↑05 août 2024 14:29 Merci de fournir un document.
Avatar de l’utilisateur
Dolev
SuppOOrter
SuppOOrter
Messages : 1202
Inscription : 19 août 2018 05:20

Re: [Writer] Appliquer un style avant génération du texte

Message par Dolev »

Bonjour,
clark17 a écrit : ↑06 août 2024 07:13 J'ai trouvé ce bout de code qui va bien
:roll: 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
Open Office 4.1.16 sous Windows 11