Macros/Writer/006/es

    From The Document Foundation Wiki
    < Macros‎ | Writer
    This page is a translated version of the page Macros/Writer/006 and the translation is 100% complete.


    Other languages:

    Descripción

    A menudo se da el problema de que tanto los índices, como la tabla de contenido (que es un tipo de índice), no se actualizan después de que se han introducido cambios. Los documentos se pueden enviar con enlaces incorrectos.

    Esta macro actualiza automáticamente los enlaces de un índice. Puede ser útil vincular la macro al comando Guardar documento (Herramientas ▸ Personalizar ▸ Eventos ▸ Guardar documento), para que los enlaces se actualicen cuando se guarde el documento.

    En el ejemplo de la Tabla de contenido, imagine que ha creado un documento con varios encabezados (que se asignan haciendo clic con el botón derecho y Párrafo ▸ Título 1, etc.). Y ahora inserta un Tabla de contenido mediante Insertar ▸ Sumario e índice y Sumario ▸ Sumario, índice o bibliografía.... Luego, si agrega más encabezados, puede actualizar la Tabla de contenido simplemente ejecutando esta macro.

    Código

    en LibreOffice Basic:

    Option Explicit
    
    Sub UpdateIndexes()
        '''Actualizar índices, como para una tabla de contenido'''
    
        Dim i As Integer
    
        With ThisComponent '''Sólo se procesa en documentos de Writer
            If .supportsService("com.sun.star.text.GenericTextDocument") Then
                For i = 0 To .getDocumentIndexes().count - 1
                    .getDocumentIndexes().getByIndex(i).update()     
                Next i
            End If
        End With ' ThisComponent
    
    End Sub ' UpdateIndexes

    En Python

    # -*- coding: utf-8 -*-
    from __future__ import unicode_literals
    
    import uno
    
    def UpdateIndexes():
        """Actualizar índices, como para una tabla de contenido"""
    
        thisComponent = XSCRIPTCONTEXT.getDocument()
        if thisComponent.supportsService("com.sun.star.text.GenericTextDocument"):
            count = thisComponent.getDocumentIndexes().getCount()
            for i in range(0,count):
                thisComponent.getDocumentIndexes().getByIndex(i).update()