FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ

Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017  Ajouter une question

 

Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).

Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.


SommaireProgrammation OBasicOBasic : Présentation (5)
précédent sommaire suivant
 

Cette procédure ouvre une présentation, boucle sur chaque page pour afficher son nom et le nombre d'objet qu'elle contient.
Ensuite la macro boucle sur chaque objet pour en récupérer les dimensions.

Code vb : Sélectionner tout
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
Sub BoucleObjetsPresentation 
  Dim Fichier As String 
  Dim Array() As Variant 
  Dim oDoc As Object , oPage As Object 
  Dim i As Integer , j As Integer 
  
  Fichier = "C:\Documents and Settings\mimi\dossier\maPresentation.odp" 
  Fichier = ConvertToURL(Fichier) 
  
  'Ouvre la présentation 
  oDoc = StarDesktop.LoadComponentFromURL( Fichier , "_blank", 0, Array() )  
  
  'Boucle sur les slides 
  For i = 0 To oDoc.getDrawPages().getCount() - 1 
  
    oPage = oDoc.getDrawPages.getByIndex(i) 
  
    'Affiche le nom de la page et compte le nombre de Shapes qu'elle contient 
    MsgBox oPage.getCount() & " shape(s)" & _ 
      " dans la page nommée '" & oPage.getName & "'" 
  
    'Boucle sur les objets de la page 
    For j = 0 To oPage.getCount() - 1  
      oShape = oPage.getByIndex(j) 
      MsgBox "Dimensions " & oShape.getSize.Width & " x " & oShape.getSize.Height 
    Next j 
  
  Next i 
End Sub

Mis à jour le 26 août 2013 SilkyRoad

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub DemarrerPresentation 
  Dim Fichier As String 
  Dim Array() As Variant 
  Dim oDoc As Object 
  
  Fichier = "C:\Documents and Settings\mimi\dossier\maPresentation.odp" 
  Fichier = ConvertToURL(Fichier) 
  'Ouvre la présentation 
  oDoc = StarDesktop.LoadComponentFromURL( Fichier , "_blank", 0, Array() )  
  
  'Démarre la présentation en mode plein ecran 
  oDoc.Presentation.Start 
End Sub

Mis à jour le 31 juillet 2013 SilkyRoad

Cet exemple permet de masquer le 3eme Slide dans la présentation

Code vb : Sélectionner tout
ThisComponent.DrawPages(2).Visible = False

Si vous souhaitez réafficher le Slide :
Code vb : Sélectionner tout
ThisComponent.DrawPages(2).Visible = True

Mis à jour le 31 juillet 2013 SilkyRoad

La macro ci dessous duplique la 3eme page de la présentation.

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
Sub DupliqueSlideImpress 
  Dim oDoc As Object 
  
  oDoc = ThisComponent 
  'Duplique la 3eme page dans le même fichier 
  oDoc.Duplicate(oDoc.DrawPages(2)) 	 
  
End Sub


Remarque :
Le nouveau Slide est systématiquement placé à droite du Slide copié et nommé en fonction de sa position dans la présentation.
Dans notre exemple la nouvelle page va être nommée « Page 4 » et les autres pages seront automatiquement renommées en conséquence.

Mis à jour le 26 août 2013 SilkyRoad

Cet exemple nécessite d'être connecté à internet afin de récupérer l'image qui va s'afficher dans la présentation.

Code vb : Sélectionner tout
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
31
32
33
34
35
36
Sub CreerPresentation 
  Dim oDoc As Object , oPage As Object 
  Dim Arg() As Variant 
  
  'Création présentation  
  oDoc = StarDesktop.loadComponentFromURL( "private:factory/simpress", "_blank", 0, Arg() )  
  
  '--- 
  'Spécifie la première page (qui est automatiquement créée en même 
  'temps que la nouvelle présentation).   
  oPage = oDoc.DrawPages.getByIndex(0)  
  'Renomme la page 
  oPage.Name = "DVP 1" 
  
  AjoutImage ( oDoc , oPage , "http://www.developpez.com/template/logo.gif" , _ 
  		6500 , 3500 , 500 , 500 ) 
  
  AjoutTexte ( oDoc , oPage , "Bienvenue à vous !" , _ 
  		14000 , 2500 , 7000 , 6000 , RGB(235,235,180)  )  
  '--- 
  
  '--- Ajoute une deuxième page --- 
  oPage = oDoc.DrawPages.insertNewByIndex(1) '(1) correspond à l'index de la 2eme page 
  oPage.Name = "DVP 2" 
  
  AjoutImage ( oDoc , oPage , "http://www.developpez.com/template/logo.gif" ,  _ 
  		6500 , 3500 , 500 , 500 ) 
  
  AjoutTexte ( oDoc , oPage , "J'espère que cet exemple vous aura aidé..." , _ 
  		14000 , 3000 , 7000 , 6000 , RGB(235,235,180) ) 
  
  '--- 
  
  'Démarre la présentation en mode plein écran 
  oDoc.Presentation.Start 
End Sub
Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function AjoutImage( oCmp As Object , oPge As Object , Fichier As String , Largeur As Long , _ 
	Hauteur As Long , Verti As Long , Horiz As Long ) 
  
  Dim oImage As Object 
  Dim oSize As New com.sun.star.awt.Size  
  Dim oPos As New com.sun.star.awt.Point 
  
  '--- Insère une image, la redimensionne et la positionne et la page --- 
  '(Cet exemple nécessite d'être connecté à internet pour récupérer l'image) 
  oImage = oCmp.createInstance("com.sun.star.drawing.GraphicObjectShape")  
  oImage.GraphicURL = ConvertToURL(Fichier)  
  'Ajoute l'image 
  oPge.Add(oImage) 
  
  'Définit la taille 
  oSize.Width  = Largeur  
  oSize.Height = Hauteur 
  oImage.Size = oSize 
  
  'Définit la Position 
  oPos.x  = Horiz 
  oPos.y = Verti 
  oImage.Position = oPos 
End Function
Code vb : Sélectionner tout
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
31
Function AjoutTexte( oCmp As Object , oPge As Object , leTexte As String , Largeur As Long , _ 
	Hauteur As Long , Verti As Long , Horiz As Long , Couleur As Long) 
  
  Dim oShape As Object 
  Dim oSize As New com.sun.star.awt.Size  
  Dim oPos As New com.sun.star.awt.Point 
  
  '--- insère une zone de texte , la redimensionne et la positionne et la page --- 
  oShape = oCmp.createInstance("com.sun.star.drawing.TextShape")  
  
  'Définit la taille 
  oSize.Width  = Largeur  
  oSize.Height = Hauteur 
  oShape.Size = oSize 
  
  'Définit la Position 
  oPos.x  = Horiz 
  oPos.y = Verti 
  oShape.Position = oPos 
  
  'Définit la couleur de fond pour la zone de texte   
  oShape.FillStyle = com.sun.star.drawing.FillStyle.SOLID  
  oShape.FillColor = Couleur  
  
  'Ajoute la zone de texte 
  oPge.Add(oShape) 
  
  'insère le texte 
  oShape.getText().setString( leTexte ) 
  oShape.getText().CharHeight = 40 'taille caractères 
End Function

Mis à jour le 27 août 2013 SilkyRoad

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2017 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

 
Contacter le responsable de la rubrique OpenOffice & LibreOffice