Jump to content

Macros/Writer/006/es

From The Document Foundation Wiki
This page is a translated version of the page Macros/Writer/006 and the translation is 90% complete.
Outdated translations are marked like this.


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
# -*- 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()