Macros/Writer/006/es

From The Document Foundation Wiki
< Macros‎ | Writer
Jump to navigation Jump to search
This page is a translated version of the page Macros/Writer/006 and the translation is 100% complete.
Other languages:
English • ‎español • ‎français • ‎italiano

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