Hola a todos:
Creo que esta pregunta debería ir en «Programación en otros lenguajes», pero, como no he encontrado dónde, pues la dejo aquí, a merced de lo que diga el administrador.
La cuestión es que tengo que hacer una macro en LibreOffice BASIC que recorra los párrafos de determinados tipos —«Estilos» mejor que tipos— de todo un documento LO Writer y vea el contenido, el texto, de cada uno. Pero resulta que la cosa ha cambiado mucho desde la última vez que hice cosas de éstas tanto con el LOB como con el VBA y soy incapaz de manejarme en condiciones con el UNO. ¿Alguien podría echarme una mano?
Gracias.
Bueno, tras arduas horas persiguiendo StarBASIC y UNO, creo que lo he logrado. Los estilos CC_Página y CC_Viñeta se pueden cambiar, obviamente, por otros:
Código:
Sub DibujaEsquema
Dim Doc As Object
Dim Enu As Object
Dim Tex As Object
Dim Pag as Integer
Dim Vin as Integer
Dim Paso As String
' Aquí tamaño y orientación de la página. Dibuja los marcos
Doc=ThisComponent
Enu=Doc.Text.createEnumeration
While Enu.hasMoreElements
Tex=Enu.nextElement
If Tex.supportsService("com.sun.star.text.Paragraph") Then
If Tex.ParaStyleName=("CC_Página") Then
Pag=Pag+1
Vin=0
'Dibuja la página: Aquí hará «cosas» con la página
Paso=Paso & "Página: " & Pag & CHr(13)
End If
If Tex.ParaStyleName=("CC_Viñeta") Then
Vin=Vin+1
'Dibuja la viñeta: Aquí hará «cosas» con la viñeta
Paso=Paso & " Viñeta: " & Pag & "." & Vin & " " & Tex.String & Chr(13)
End If
End If
Wend
MSGBOX (Paso)
End Sub