The script adds a bar with the percentage and width proportional to the position of the slide in the presentation.
Now I see there are other people wanting this functionality, so I'll publish it here:
Sub InsertProgressBar
Dim oDoc As Object
oDoc = ThisComponent
' Check if this is an Impress document
If thisComponent.supportsService("com.sun.star.drawing.GenericDrawingDocument") Then
Dim oDrawPage As Object
Dim Point As New com.sun.star.awt.Point
Dim Size As New com.sun.star.awt.Size
Dim Factor As Double
Dim Percent As Integer
For n = 0 To oDoc.DrawPages.Count-1
oDrawPage = oDoc.DrawPages(n)
Factor = oDrawPage.Width / oDoc.DrawPages.Count
Size.Width = (n + 1) * Factor
Size.Height = oDrawPage.Height * 0.05
Point.x = 0
Point.y = oDrawPage.Height - Size.Height
m = oDrawPage.getCount-1
Do While (m >= 0)
mShape = oDrawPage.getByIndex(m)
If (InStr(mShape.Name, "Progress Bar Macro") <> 0) Then
oDrawPage.remove(mShape)
End If
m = m-1
Loop
RectangleShape = oDoc.createInstance("com.sun.star.drawing.RectangleShape")
RectangleShape.CharWeight = com.sun.star.awt.FontWeight.BOLD
RectangleShape.CharFontName = "Arial"
RectangleShape.Size = Size
RectangleShape.Position = Point
RectangleShape.Name = "Progress Bar Macro " + (n+1)
Percent = 100 * (n + 1) / oDoc.DrawPages.Count
oDrawPage.add(RectangleShape)
' RectangleShape.String = "" + oDrawPage.Number + " / " + Doc.DrawPages.Count + " (%" + Percent + ")"
RectangleShape.String = "%" + Percent
Next n
End If
End Sub
You can copy the code above or download the
Edit: Thanks to Leo Barichello we have now a dialog box and some customization options.
How to use:
1st make a backup of your FINISHED presentation.
2nd execute the macro and a progress bar will be added to each slide, on top of whatever there is in it.
Use it freely but at you own risk, I wont be responsible for any loss or damage to your work or system.
Info on how to add/import a macro to your Open Office / Libre Office Suite is available on the net, so just use your favorite search engine to find how to do it.
TODO: maybe someone would like to add a dialog to choose different options for the progress bar...
![]() |
NOTE: This screenshot is just a mockup |
Thank you, it was very useful!
ReplyDeleteIf I find some spare time, I may work in the dialog box.