l'exemple fonctionne, merci
mais j'ai trouvé une autre solution au problème :
je sais que si il existe une phrase à mettre à la verticale, elle est dans un tableau et dans la cellule A2 de ce tableau.
je récupère donc tous les tableaux de mon doc
je crée un curseur dans la cellule A2
si le texte de cette cellule se termine par la balise [VERT], je réécris cette phrase avec la propriété verticale
sinon, je passe au tableau suivant
voici le code :
- Code: Tout sélectionner AgrandirRéduire
//***********************************************************
// RECHERCHE TOUS LES TABLEAUX DU DOCUMENT
// SI LA CELLULE A2 A SON TEXTE QUI DE TERMINE PAR "[VERT]"
// ALORS JE REECRIS LA PRHASE AVEC LA PROPRIETE VERTICALE
// SINON, JE NE FAIS RIEN
//***********************************************************
// ajuster la propriété
short rotation = 900;
XTextDocument xTextDoc = (XTextDocument)UnoRuntime.queryInterface(XTextDocument.class, xWriterComponent);
XText xText = (XText)xTextDoc.getText();
XTextTablesSupplier tab = (XTextTablesSupplier)UnoRuntime.queryInterface(XTextTablesSupplier.class, xWriterComponent);
XNameAccess tables = tab.getTextTables();
System.out.println(tables);
// create instance of a text table
XTextTable xTT = (XTextTable) UnoRuntime.queryInterface(XTextTable.class, xWriterComponent);;
//récupération des nom de tous les tableaux présents dans le document
String[] tableName = tables.getElementNames();
//pour tous les tableaux du document ...
for (int i = 0 ; i<tableName.length; i++)
{
System.out.println(tableName[i]);
xTT = (XTextTable)UnoRuntime.queryInterface(XTextTable.class, tables.getByName(tableName[i]));
XTextTableCursor xTTC = xTT.createCursorByCellName("A2");
XText xCellA2Text = (XText)UnoRuntime.queryInterface(XText.class,xTT.getCellByName("A2"));
//récupération de la phrase contenu dans la cellule A2
String phraseA2 = xCellA2Text.getString();
//si la phraseA2 se termine par la balise [VERT]...
if (phraseA2.endsWith("[VERT]"))
{
//ajustement de la propriété verticale
XPropertySet xTPS = (XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, xTTC);
xTPS.setPropertyValue("CharRotation", new Short(rotation));
//réécriture de la phrase en vertical
xCellA2Text.setString(phraseA2);
}
}
merci pour vos réponses