Saltar al contenido

¿Cómo eliminar todas las imágenes de un documento en LibreOffice Writer?

Si encuentras algún fallo en tu código o trabajo, recuerda probar siempre en un ambiente de testing antes aplicar el código al trabajo final.

Solución:

También puede utilizar un corto macro desde LibreOffice para eliminar todas las imágenes de un documento:

Sub RemoveImages

   Dim oDoc as Object
   oDoc = ThisComponent

   Dim oGraphics as Object
   oGraphics = oDoc.getGraphicObjects()

   Dim oImg as Object

   For Each oImg in oGraphics
       oDoc.getText().removeTextContent(oImg)
   Next 

End Sub

Este ejemplo también podría modificarse para cambiar las propiedades de las imágenes (como hacer que todas tengan un tamaño uniforme), así como el manejo de objetos de forma, etc.

Creación de macros

LibreOffice proporciona un lenguaje básico así como en IDE para crear, depurar, almacenar y ejecutar código.

para abrir el macro diálogo, uso alternativa + F11 o, desde el menú, Herramientas > macros > Organizar macros > LibreOffice Básico

El código se coloca en módulosque se organizan en bibliotecas. Puede crear el suyo propio, pero para la mayoría de los propósitos puede usar el MisMacros biblioteca y el incorporado Módulo 1.

Una vez el macro el cuadro de diálogo está abierto, resalte Módulo 1 y presiona Editar. Esto abre el IDE.

El código está organizado en subs y funciones. Tomando prestado de VBA, las funciones se utilizan para devolver un valor y los Subs no devuelven un valor. Puede definir sus propios subs y funciones en cualquier lugar debajo de Main. Entonces, para usar este código para eliminar imágenes, simplemente péguelo en el módulo.

Uso de macros

Puede ejecutar el código directamente desde el IDE haciendo clic en cualquier lugar dentro del Sub que desea ejecutar y presionando F5. (Las funciones, dado que devuelven un valor, deben llamarse desde un Sub). También puede usar los botones de diálogo o el menú para ejecutar el código. El IDE incluye un depurador integrado, que es crucial al escribir código nuevo.

La próxima vez que abra el macro cuadro de diálogo, verá el sub enumerado como un macro y luego se puede ejecutar sin abrir el IDE. También se pueden asignar macros individuales a los elementos del menú o de la barra de herramientas.

Nota: Esta macro se ejecutará en cualquiera que sea el documento activo. Al ejecutar un macro del menú o macro cuadro de diálogo, se puede suponer que este es el documento donde acaba de presionar el botón; pero cuando utilice el IDE para crear, ejecutar o depurar código, asegúrese de no haber convertido otro documento en el documento activo.

LibreOffice Básico

LibreOffice Basic es muy similar a VBA, pero esa similitud también puede ser engañosa ya que el modelo de objetos es completamente diferente y la sintaxis también tiene muchas diferencias.

Por ejemplo, en VBA, una vez que tenga una referencia a un objeto de imagen, el objeto de imagen tendría un método de eliminación. Aquí, los objetos tienen o heredan muy pocos métodos. Para eliminar el objeto de imagen, utiliza el elemento de documento con una estructura y sintaxis muy similar a un DOM basado en navegador.

La Ayuda de LibreOffice tiene enlaces para comenzar con LibreOffice Basic.

Supongo que el texto del documento está formateado y que guardarlo como solo texto no es lo ideal. En ese caso, se podría adoptar un enfoque algo largo:

  • Cree una carpeta temporal.

  • Abra el documento en LibreOffice normalmente.

  • Escoger Save As y aquí seleccione HTML Document (Writer) (.html) como el formato.

    • Además, especifique la carpeta temporal para el destino y asigne un nombre adecuado al archivo html propuesto. De acuerdo con Save as html y no formato impar en la siguiente pantalla.
  • Cierre LibreOffice.

  • Abra la carpeta temporal creada anteriormente. Deberías ver una archivo html y un montón de imágenes.

    • Elimine las imágenes si ya no las necesita.
  • Luego, abra el .html archivo en un editor de texto apropiado para eliminar las etiquetas que, de lo contrario, si se dejaran, causarían espacios en blanco en el documento.

    • Por ejemplo, en Geany, usé
]+> como la expresión de búsqueda y nada en el cuadro “reemplazar con”.

geany

Editar: en lugar de usar un editor de texto basado en GUI, asumiendo que uno está en la carpeta relevante y que cli.html es el nombre dado al guardar en html en LibreOffice, uno podría simplemente usar la línea de comando de esta manera:

perl -p -i.bak -e 's/]+>//g' cli.html

Un archivo de respaldo, cli.html.bakse crea por si acaso…

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *