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í seleccioneHTML 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.
- Además, especifique la carpeta temporal para el destino y asigne un nombre adecuado al archivo html propuesto. De acuerdo con
-
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é
- Por ejemplo, en Geany, usé