En un post anterior se explicaba como acceder a una base de datos desde OpenOffice, generar documentos con los datos obtenidos de la base de datos y cómo un documento obtenido así presentaba una numeración de página con saltos. Los saltos se deben a que el documento se entiende como un conjunto de documentos independientes puestos juntos, sin embargo, a veces esto no nos interesa y necesitamos resetear el contador de páginas para obtener una paginación normal. Para eso usaremos una macro en Basic.
Reseteo del número de página
Para restear ese cambio de numeración de página habría que ponerse en el principio del primer párrafo tras el salto de página que queremos cambiar. Nos metemos en «Formato»->»Párrafo…» y, en la pestaña «Flujo de texto» vemos que en el apartado salto hay marcado un salto de página y el recuadro de «Con estilo de página», un estilo de página (normalmente «Predeterminado») y «número de página» con un valor de 1. Si ponemos 0 en este valor ya no se produce el salto en la numeración de página.
Pero claro, esto esta muy bien si son pocos los documentos combinados. ¿Qué hacer si son muchos?
Macro para resetear el número de página
Tras mucho buscar encontré un macro para hacer esto en este hilo del foro de usuarios de OpenOffice. El macro ya adaptado para que funcione directamente es el siguiente:
Sub Main Dim document As Object document = ThisComponent Dim oTextEnum As Object Dim oTextElement As Object Dim oTextPortionEnum As Object Dim oTextPortion As Object oTextEnum = document.Text.createEnumeration While oTextEnum.hasMoreElements() REM iterate through paragraphs and tables oTextElement = oTextEnum.nextElement() If oTextElement.supportsService("com.sun.star.text.Paragraph") Then oTextPortionEnum = oTextElement.createEnumeration() While oTextPortionEnum.hasMoreElements() oTextPortion = oTextPortionEnum.nextElement() If oTextPortion.PageNumberOffset = 1 Then oTextPortion.PageNumberOffset = 0 End If Wend End If Wend End Sub |
Espero que a alguien le pueda servir y que no tenga que buscar tanto como yo una solución para algo que debería ser sencillo.
Social