Grandamakulo   28-09-2021, 14:11
#1
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
Última modificación: 05-10-2021, 22:35 por Grandamakulo.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
tincho   28-09-2021, 14:34
#2
En el menú herramientas / herramientas de desarrollo de Writer hay algo que por ahí te sirve para darte una idea, pero no hice nunca un macro con libreoffice.
Saludos.

1 Saludo.
Grandamakulo   28-09-2021, 16:14
#3
Gracias, Tincho:
La verdad es que yo sí que he hecho muchas, pero casi todas, o todas, para Calc o Excel. Las pocas que he hecho para Writer o Word fueron hace veinte años y no me acuerdo, releñes. Y el problema viene, para mí, desde la «búsqueda» de un elemento determinado. Por más vueltas que he dado por la red, no encuentro cómo instanciar un tipo de párrafo.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
tincho   29-09-2021, 10:51
#4
ok, vamos a hacer algo, envíame una macro que haga algo sencillo con un documento writer. así veo como trabaja y tal vez te pueda ayudar, pero primero me tiene que ayudar tu.
Saludos.

1 Saludo.
Grandamakulo   29-09-2021, 13:37
#5
¡Ahí va! =D
Archivos adjuntos
.zip
Pruebas macros.odt.zip (Tamaño: 12.69 KB Descargas: 1)
Última modificación: 29-09-2021, 13:39 por Grandamakulo.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
Grandamakulo   06-10-2021, 08:15
#6
Bueno, parece que solucionado. He puesto el código en el primer mensaje para que sea más fácil de ver.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
tincho   07-10-2021, 23:25
#7
(06-10-2021, 08:15)Grandamakulo escribió: Bueno, parece que solucionado. He puesto el código en el primer mensaje para que sea más fácil de ver.

Uhh, me perdí en el limbo y al final no hice nada, pero bueno veo que lo solucionaste.
Saludos.

1 Saludo.
Grandamakulo   08-10-2021, 08:32
#8
(07-10-2021, 23:25)tincho escribió:
(06-10-2021, 08:15)Grandamakulo escribió: Bueno, parece que solucionado. He puesto el código en el primer mensaje para que sea más fácil de ver.

Uhh, me perdí en el limbo y al final no hice nada, pero bueno veo que lo solucionaste.
Saludos.

Si es que andamos todos como locos con el final del verano  Smile . En cualquier caso, gracias por el interés.

En un lugar de La Mancha de cuyo nombre me acuerdo perfectamente...
  
Usuarios navegando en este tema: 5 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.