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

10

Ubuntu 12.04

Quiero eliminar todas las imágenes de un documento en LibreOffice Writer. Mi documento contiene ~ 350 imágenes. ¿Hay alguna forma de eliminarlos en masa en lugar de uno por uno? Intenté desmarcar Herramientas> Opciones> LibreOffice Writer> Ver> Pantalla> "Gráficos y objetos". Pero los marcadores de posición todavía son visibles.

Editar: sé cómo guardar la página como un archivo de texto sin formato, pero necesito formatear mi documento.

Chella
fuente
@Chelia: ¿Has intentado guardar el documento como un archivo de solo texto (en las preferencias "guardar como")?
stephenmyall
Pero, ¿por qué el desmarcar "opciones> libreoffice writer> vista> Pantalla>" Gráficos y objetos "" no funciona? Lo intenté. Esto funciona para mi. Con esa configuración marcada, la próxima vez que abra cualquier documento con gráficos, solo veo los marcadores de posición.
todavía necesitaría eliminar los marcadores de posición @ vasa1 :)
Rinzwind
¡Cierto! Pero no está claro cuál es el objetivo final o por qué OP no quiere ver las imágenes. Exportar como un archivo de solo texto puede eliminar muchos formatos.
exactamente..! Perderé todo el formato si lo guardo solo con texto.
Chella

Respuestas:

12

También puede usar una macro corta 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 manejar objetos de forma, etc.

Crear macros

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

Para abrir el cuadro de diálogo macro, use Alt+ F11o, en el menú, Herramientas > Macros > Organizar macros > LibreOffice Basic

El código se coloca en módulos , que se organizan en bibliotecas . Usted puede crear su propio, pero para la mayoría de los propósitos puede utilizar el incorporado en MyMacros biblioteca y la incorporada en el módulo 1 .

Una vez que se abre el cuadro de diálogo macro, resalte Módulo1 y presione 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.

Usando macros

Puede ejecutar el código directamente desde el IDE haciendo clic en cualquier lugar dentro del Sub que desee ejecutar y presione 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 cuadro de diálogo macro, verá el sub listado como macro y luego se puede ejecutar sin abrir el IDE. Las macros individuales también se pueden asignar a elementos de menú o barra de herramientas.

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

LibreOffice Basic

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 tiene 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 a usar LibreOffice Basic.

chaskes
fuente
Si no es demasiado problema, una pequeña instrucción sobre cómo convertir realmente el código a una macro puede ser útil. Teniendo en cuenta todos los gritos sobre Java, las personas también deben saber que se necesita un JRE para permitir que las macros funcionen. Esperemos que LibreOffice finalmente se libere de Java.
Genio. :) Y todavía funciona en LibO Writer 5.1, podría valer la pena agregarlo.
Dɑvïd
5

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

  • Crea una carpeta temporal.

  • Abra el documento en LibreOffice normalmente.

  • Elija Save Asy aquí seleccione HTML Document (Writer) (.html)como formato.

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

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

    • Elimine las imágenes si ya no son necesarias.
  • Luego, abra el .htmlarchivo en un editor de texto apropiado para eliminar las etiquetas que, de lo contrario, de lo contrario, causarían lagunas en el documento.

    • Por ejemplo, en Geany, utilicé <IMG SRC="[^>]+>como expresión de búsqueda y nada en el cuadro "reemplazar con".

geany

  • Guarde el archivo .html. Ahora, cuando se ve en un navegador o incluso en LibreOffice, no habrá imágenes, ni marcadores de posición, solo texto formateado.

Editar: en lugar de usar un editor de texto basado en GUI, suponiendo que uno esté en la carpeta relevante y ese cli.htmles el nombre dado al guardar htmlen LibreOffice, uno podría usar la línea de comando de esta manera:

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

Se cli.html.bakcrea un archivo de copia de seguridad, por si acaso ...


fuente