Bien le bonjour à tous.

Donc mon problème réside dans le fait de mettre en gras ou en italique du texte que j'insère.
Je récupère des données de la base de données bibliographique que je souhaite afficher à l'écran en les "fomattant".
La partie récupération de données de la base se passe bien mais c'est lors de l'écriture dans le document que j'ai des problèmes.

Alors je voici mon code source (en partie. Je mettrais le tout si c'est nécessaire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
protected void write(String data){
  xTextDoc = (XTextDocument)  UnoRuntime.queryInterface(XTextDocument.class,oDoc);
 xText = xTextDoc.getText();
 xTextRange = xText.getEnd();
 XPropertySet xCursorProps = (XPropertySet)  UnoRuntime.queryInterface(XPropertySet.class, xTextRange); 
// call setPropertyValue, passing in a Float object 
 xCursorProps.setPropertyValue("CharWeight", new Float ( com.sun.star.awt.FontWeight.THIN)); 
 xCursorProps.setPropertyValue("CharPosture", com.sun.star.awt.FontSlant.NONE); 
 xTextRange.setString( data);
}
protected void writeBold(String data){
 xTextDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class,oDoc);
 xText = xTextDoc.getText();
 xTextRange = xText.getEnd();
 // query the XPropertySet interface 
 XPropertySet xCursorProps = (XPropertySet)  UnoRuntime.queryInterface(XPropertySet.class, xTextRange); 
 // call setPropertyValue, passing in a Float object 
 xCursorProps.setPropertyValue("CharWeight", new Float ( com.sun.star.awt.FontWeight.BOLD)); 
 xTextRange.setString( data);
}
protected void writeItalic(String data){
 xTextDoc = (XTextDocument) UnoRuntime.queryInterface(XTextDocument.class,oDoc);
 xText = xTextDoc.getText();
 xTextRange = xText.getEnd();
 // query the XPropertySet interface 
 XPropertySet xCursorProps = (XPropertySet) UnoRuntime.queryInterface(XPropertySet.class, xTextRange); 
 // call setPropertyValue, passing in a Float object 
 xCursorProps.setPropertyValue("CharPosture", com.sun.star.awt.FontSlant.ITALIC); 
 xTextRange.setString( data);
}
Et voici l'utilisation
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
       writeBold(author);
        write(" : ");
        writeItalic(title);
        write(" , ");
        write(adress);
        write(" [");
        writeBold(editor);
        write("]");
        write("\n");
Et voici l'affichage que j'obtiens ( en gros je vais pas tous faire c'est long)
Borges, Malte; Schumacher, Jörg; Redeker, Torsten : StarOffice 7 , []
Borges, Malte; Schumacher, Jörg; Redeker, Torsten : StarOffice 7.0 / OpenOffice.org Kompendium, m. 2 CD-ROMs , []
Böhm, Franz : StarOffice 7 kreativ , []


Le résultat que j'aimerais obtenir est

Borges, Malte; Schumacher, Jörg; Redeker, Torsten : StarOffice 7 , []
Borges, Malte; Schumacher, Jörg; Redeker, Torsten : StarOffice 7.0 / OpenOffice.org Kompendium, m. 2 CD-ROMs
, []
Böhm, Franz : StarOffice 7 kreativ , []


Alors voici mon problème.
Le texte reste en italique une fois que je suis passé par la méthode writeItalic, même si dans la méthode write je repasse à priori en NONE.
Et second problème pour annuler le gras, je dois mettre la constante com.sun.star.awt.FontWeight.THIN et pas com.sun.star.awt.FontWeight.NORMAL pour revenir à une épaisseure normale des caractères.

J'espère avoir été suffisamment clair.
Merci par avance pour votre aide,
J'avoue être débutant et ne pas trop savoir où chercher pour résoudre mon problème.