Bonjour,
J'ai un document qui contient des annexes, et je souhaiterais écrire une
macro permettant de générer une table des matières pour une annexe.
J'arrive à créer la table des matières au bon endroit dans mon annexe,
le problème est que soit elle est vide soit elle contient les titres de
tous le document, pas seulement de l'annexe.
Je voudrais qu'elle ne contienne que les titres de l'annexe, sachant
qu'ils ont des styles particuliers ("Annexe Titre 1", "Annexe Titre 2",
etc...)

J'arrive à faire ça depuis l'ihm en créant un index, en cochant "Créer
depuis styles supplémentaires" dans le premier onglet et en assignant à
chaque niveau le style qui correspond.

J'ai pas mal cherché sur le net, et j'ai trouvé la propriété
LevelParagraphStyles du service ContentIndex. Il semblerait que ça
permette de définir les styles de titre pris en compte dans l'index. Le
problème c'est que je ne sais pas comment l'utiliser, j'ai essayé ce
bout de code :

annexe = leDoc.TextSections.getByName(nomAnnexe)
        tocAnnexe = leDoc.createInstance("com.sun.star.text.ContentIndex")
        with tocAnnexe
        .Name(nomAnnexe+"_toc")
        .CreateFromOutline = false
        .CreateFromChapter = true
        .CreateFromLevelParagraphStyles = true
        .CreateFromMarks = false
        .Title= "Sommaire"
        .ParaStyleLevel1= "Annexe Titre 1"
        .ParaStyleLevel2= "Annexe Titre 2"
        .ParaStyleLevel3= "Annexe Titre 3"
        .ParaStyleLevel4= "Annexe Titre 4"
        .IsProtected= true
        end with
        
        dim styles
        styles = tocAnnexe.LevelParagraphStyles
        styles.replaceByIndex(1,"Annexe Titre 1")
        styles.replaceByIndex(2,"Annexe Titre 2")
        styles.replaceByIndex(3,"Annexe Titre 3")
        styles.replaceByIndex(4,"Annexe Titre 4")
        
        'create the cursor from the bookmark anchor
        dim oCursor
        oCursor = leDoc.getText().createTextCursor()
        oCursor.gotoRange(annexe.anchor.start,false)
        oCursor.gotoNextParagraph(false)
        
        'insert the toc
        leDoc.getText().insertTextContent(oCursor,tocAnnexe,false)


Ce code me fait une erreur à la ligne
> styles.replaceByIndex(1,"Annexe Titre 1")
IllegalArgumentException

Si j'enlève la partie
        dim styles
        styles = tocAnnexe.LevelParagraphStyles
        styles.replaceByIndex(1,"Annexe Titre 1")
        styles.replaceByIndex(2,"Annexe Titre 2")
        styles.replaceByIndex(3,"Annexe Titre 3")
        styles.replaceByIndex(4,"Annexe Titre 4")

ça me crée une table des matières vide.

J'ai trouvé un mail sur le même sujet (mis à part que je veux le faire
en Basic et lui en java) sur la mailling list dev
http://www.mail-archive.com/[EMAIL PROTECTED]/msg06901.html mais il n'a
pas reçu de réponse.

Je suis preneur de toute aide/exemple/lien/conseil :)
Merci d'avance

--------------------------------------------------------------------------------------
Joël Vimenet                                                                    
                
[EMAIL PROTECTED]               
                                
Anyware Technologies
Lake Park
ZAC de l'Hers - Allée du Lac
BP 87216-31672 Labège Cedex
France
www.anyware-tech.com

Ce message et toutes les pièces jointes (le "Message") sont
confidentiels et établis à l'intention exclusive de ses destinataires.
Toute modification, édition, utilisation ou diffusion non autorisée est
interdite.
Anyware Technologies et sa maison mère Wavecom déclinent toute
responsabilité au titre de ce Message s'il a été altéré, déformé,
falsifié ou édité, diffusé sans autorisation.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Répondre à