Numerare righe

Problema
Date 160 pagine manoscritte in gotico bastardo, da trascrivere in un documento OpenOffice.org, scrivere ogni 5 righe il numero del verso, in modo che i numeri siano incolonnati e allineati tra loro, lievemente distanziati dal resto del testo. La porzione di pagina che contiene i numeri deve essere modificabile da chi scrive, ad esempio per affiancare ai numeri indicazioni sulla carta di origine (nel formato numero recto/verso).
Soluzione parziale
Usare un master document e la funzione Strumenti -> Conteggio righe, creando uno stile paragrafo personalizzato e usando margini adeguati.
Soluzione semi-automatizzata
Scrivere tutti i versi nella prima colonna di una tabella, senza saltare righe. Nella seconda tabella scrivere 1, poi quattro righe vuote, poi usare la seguente macro OObasic per numerare il resto delle righe. Impaginare la tabella secondo necessità.
sub conta
rem ----------------------------------------------------------------------
rem Questa macro viene usata per scrivere i numeri dei versi nella seconda
rem colonna di una tabella, ogni cinque righe.
rem ----------------------------------------------------------------------
rem Scritta da Iron Bishop il 02 novembre 2009 - pubblico dominio
 
rem ----------------------------------------------------------------------
rem define variables
dim document, dispatcher as object
dim args1(0) as new com.sun.star.beans.PropertyValue
dim min, max as integer
 
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 
rem ----------------------------------------------------------------------
min = CInt(InputBox("Inserisci il valore minimo:", "Numerazione", "5"))
max = CInt(InputBox("Inserisci il valore massimo:", "Numerazione", "50"))
args1(0).Name = "Text"
 
For i = min To max Step 5
args1(0).Value = "" & i
dispatcher.executeDispatch(document, ".uno:InsertText", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
dispatcher.executeDispatch(document, ".uno:InsertPara", "", 0, Array())
Next i
 
end sub

Collegamenti esterni