Exportar tres copias con distinto encabezado a PDF en Writer

Exportar tres copias en PDF de un documento Writer con una macro

En tu trabajo tienes que imprimir habitualmente tres copias de un mismo documento, o exportarlo en PDF.

Con cada copia tienes que modificar un texto en su encabezado antes de imprimir o exportar, y eso, por treinta documentos diarios, te roba mucho tiempo.

Te gustaría automatizar el proceso. ¿Es posible?

No sólo es posible, sino que con el tutorial adecuado, hasta puede resultar fácil.

¿Lo... conseguimos?

Partimos de nuestro documento Writer, el mismo en el que hasta ahora tenemos que insertar varios textos distintos en su encabezado para generar distintas copias exportadas en PDF o impresas.

Vamos a utilizar una macro que sustituye automáticamente los nombres de las copias, y exporta cada una de ellas a la carpeta indicada, utilizando el nombre del documento y el nombre de la copia para formar el nombre del documento exportado en PDF. Esta macro se lanzará con un clic desde un botón que agregaremos bien al documento, bien a una nueva barra de herramientas (o a ambos, ¿por que no?)

Empecemos:

Insertar un campo de usuario en el encabezado

Lo primero que haremos es agregar un campo de texto al encabezado en el mismo lugar donde insertamos los distintos textos, sustituyéndolos.

  • Haz clic en el lugar del encabezado del documento en que quieres que se muestre el texto
  • Selecciona desde el menú Insertar > Campos... > Otros
  • En Tipo de campo selecciona Campo del usuario
  • En Formato selecciona Texto
  • En Nombre escribe el nombre del campo (por si acaso no incluyas acentos, ñ o ç, aunque lo admita). En este ejemplo lo bautizamos como QueCopia
  • En Valor escribe el valor inicial que quieras que posea, por ejemplo Ejemplar para el interesado
  • Haz clic sobre el botón Aplicar (como diría fornelasa, la palomita verde)
  • Haz clic sobre el botón Insertar, y luego sobre Cerrar

 

Insertar campo de usuario en documento Writer

 

En principio, el documento tomará un aspecto similar al siguiente:

 

Insertar campo de usuario en documento Writer

 

 

Copiar y pegar esta macro en el documento o en tu sistema

La macro que vamos a utilizar es la mostrada a continuación. Tienes que seguir todos los pasos al pie de la letra con mucha atención.

De momento, selecciona SOLO el texto de la macro y dile Copiar a tu navegador:

 

Sub Exportar3Copias()
Dim cDoc As String, cCarpeta As String, cNomCampo As String
cDoc = ThisComponent.Title
cCarpeta= "C:\Docs\" ' Pon aquí la carpeta destino
cNomCampo = "QueCopia" ' Pon aquí el nombre del campo agregado

ExportarPDF cCarpeta & "Copias", cDoc, cNomCampo, "Ejemplar para la Administración"
ExportarPDF cCarpeta & "Copias", cDoc, cNomCampo, "Ejemplar para el interesado"
ExportarPDF cCarpeta, cDoc, cNomCampo, "Original"

MsgBox ("Proceso terminado", 192, "Exportar 3 copias")
End Sub

Sub ExportarPDF( cCarpeta As String, cDoc As String, cCampo As String , cCopia As String)
' Valor contenido en el campo
Dim Campo As Object
Campo = ThisComponent.getTextFieldMasters.GetByName("com.sun.star.text.FieldMaster.User." & cCampo)
Campo.Content = cCopia
ThisComponent.TextFields.Refresh()

' Compruebo que se pasa la carpeta con \ al final
If Right(cCarpeta,1)<>"\" Then cCarpeta=cCarpeta & "\"

' Exportar a PDF
Dim document As Object, dispatcher As Object
Dim args1(1) As New com.sun.star.beans.PropertyValue
document = ThisComponent.CurrentController.Frame
dispatcher = CreateUNOService("com.sun.star.frame.DispatchHelper")
args1(0).Name = "URL"
args1(0).Value = ConvertToURL( cCarpeta & cDoc & "." & cCopia & ".pdf" )
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"
dispatcher.ExecuteDispatch(document, ".uno:ExportDirectToPDF", "", 0, args1())
End Sub

 

Si quieres que la macro sólo esté disponible para tu documento de Writer

Ahora en tu documento de Writer sigue estos pasos:

  • Selecciona desde el menú Herramientas > Macros > Organizar macros > OpenOffice/LibreOffice Basic...
  • Haz clic sobre el nombre de tu documento (en nuestro caso Mi documento Writer.odt) en Desde la macro, y haz clic en el botón Nuevo

Insertar macro en documento Writer


 

  • En Nombre escribe ExportaXPdf y haz clic en Aceptar


 

  • Se abrirá el editor Basic; desde su menú Editar > Seleccionar todo, y de nuevo desde el menú Editar > Pegar

 

Si quieres que la macro esté disponible para todos los documentos de Writer

Ahora en tu documento de Writer sigue estos pasos:

  • Selecciona desde el menú Herramientas > Macros > Organizar macros > OpenOffice/LibreOffice Basic...
  • Haz clic sobre el contenedor Mis macros en Desde la macro, y haz clic en el botón Nuevo
  • Se abrirá el editor Basic que se habrá situado en donde puedes pegar tu macro; habrá pegado automáticamente un texto que dice

 

Sub Macro1

End Sub

 

  • Selecciona ese texto y selecciona desde el menú Editar > Pegar

Personalizar la macro

En la primera subrutina de la macro, que se llama Exportar3Copias, sustituye los nombres de las carpetas por el adecuado, así como los nombres de las distintas copias, y si has utilizado un nombre de campo del usuario distinto a QueCopia, cambia ese nombre en el lugar correspondiente.

Ten cuidado, respeta las comillas dobles, respetando mayúsculas y minúsculas, las comas, ¡¡¡ todo !!! Esto es programación, y es muy sensible.

  • Cierra el editor Basic. Los cambios realizados serán almacenados.

 

Crear un botón para lanzar la macro

Si la macro la grabaste sólo para tu documento

Lo lógico es agregar un botón en el mismo documento para lanzar la macro:

  • Selecciona desde el menú Ver > Barras de herramientas > Campos de control de formulario
  • Agrega un botón en tu documento, clic secundario sobre el botón y selecciona Campo de Control...
  • Cambia las siguientes propiedades:
    • Desde la pestaña General: en Título escribe Exportar copias, cambia Imprimible a No
    Editar las propiedades de un botón en Writer

    • Desde la pestaña Acontecimientos, clic sobre el botón con 3 puntos al nivel de Botón del ratón soltado,clic en el botón Macro...
    Asignar una macro a un evento de un botón en Writer

    • Selecciona en Biblioteca el + delante del nombre del documento, el + delante de Standard, clic sobre ExportaXPdf
    • En Nombre de macro, selecciona Exportar3Copias; clic en Aceptar
    • Clic en Aceptar
  • Clic en el botón Modo diseño de la barra de herramientas Campos de control de formulario
  • Guarda tu documento

El documento con el botón lucirá algo como muestra la siguiente imagen; no debe preocuparte el botón, pues no se imprimirá ni se exportará al documento PDF.

 

Documento Writer con el botón insertado


 

Si la macro la grabaste para todos los documentos

Lo lógico es agregar un botón en una barra de herramientas propia para lanzar la macro:

  • Selecciona desde el menú Herramientas > Personalizar
  • Selecciona la pestaña Barras de herramientas
  • Clic en el botón Nuevo...
    • Escribe el nombre de tu nueva barra de herramientas, y haz clic sobre Aceptar
  • Clic sobre el botón Agregar...
    • En Categoría, haz clic sobre el + de Macros de OpenOffice, clic sobre el + de Mis macros, clic sobre el + de Standar, clic sobre Module1
    • En Comandos selecciona Exportar3Copias
    • Clic en el botón Agregar (sólo una vez) y en el botón Cerrar
    • Si quieres asignarle una imagen, desde el botón Modificar selecciona Cambiar icono...
    • Si quieres cambiar el texto, desde el botón Modificar selecciona Renombrar...
  • Clic sobre el botón Aceptar
  • Localiza la nueva barra de herramientas en la parte superior, seguramente tras la barra de herramientas Buscar.
Barra de herramientas personalizada en Writer

+ info sobre Crear nuevas barras de herramientas aquí

 

Ten en cuenta que esta macro sólo funcionará en aquellos documentos de Writer donde hayas insertado un campo de usuario con el mismo nombre que hemos utilizado.

Y para finalizar...

Nada. ¡¡¡ Ya has terminado !!!

Si te ha gustado, puedes votar (abajo a la derecha) y/o apóyarnos visitando alguna página de nuestros patrocinadores.

Si quieres probarlo antes, puedes descargar este documento con la macro incluída.

Descargar Documento Writer con macro para exportar tres copias en PDF

No hay reacciones, todavía


Form is loading...