Come rimuovere tutte le immagini in un documento in LibreOffice Writer?


10

Ubuntu 12.04

Voglio rimuovere tutte le immagini da un documento in LibreOffice Writer. Il mio documento contiene circa 350 immagini. C'è un modo per eliminarli in blocco piuttosto che uno per uno? Ho provato a deselezionare Strumenti> Opzioni> LibreOffice Writer> Visualizza> Schermo> "Grafica e oggetti". Ma i segnaposto sono ancora visibili.

Modifica: so come salvare la pagina come file di testo semplice, ma ho bisogno di formattazione nel mio documento.


@Chelia: hai provato a salvare il documento come file di solo testo (nelle preferenze "salva come")?
stephenmyall,

Ma perché deselezionare "opzioni> libreoffice writer> view> Display>" Grafica e oggetti "" non funziona? L'ho provato. Per me funziona. Con questa impostazione spuntata, la prossima volta che apro un documento con grafica, vedo solo i segnaposto.

avrebbe comunque bisogno di rimuovere i segnaposto @ vasa1 :)
Rinzwind,

Vero! Ma non è chiaro quale sia l'obiettivo finale o perché OP non voglia vedere le immagini. L'esportazione in un file di solo testo può uccidere molta formattazione.

Esattamente..! Perderò tutta la formattazione se la salvo con solo testo.
Chella,

Risposte:


12

Puoi anche usare una breve macro da LibreOffice per rimuovere tutte le immagini in 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

Questo esempio potrebbe anche essere modificato per modificare le proprietà delle immagini (come renderle tutte di dimensioni uniformi) e gestire oggetti forma, ecc.

Creazione di macro

LibreOffice fornisce un linguaggio di base e in IDE per creare, eseguire il debug, archiviare ed eseguire il codice.

Per aprire la finestra di dialogo macro, usare Alt+ F11o, dal menu, Strumenti > Macro > Organizza macro > LibreOffice Basic

Il codice è inserito in moduli , che sono organizzati in librerie . Puoi crearne uno tuo, ma per la maggior parte degli scopi puoi utilizzare la libreria MyMacros integrata e il Module1 integrato .

Una volta aperta la finestra di dialogo macro, evidenziare Modulo1 e premere Modifica . Questo apre l'IDE.

Il codice è organizzato in Sottotitoli e Funzioni. Prendendo in prestito da VBA, le funzioni vengono utilizzate per restituire un valore e i Sottotitoli non restituiscono un valore. Puoi definire i tuoi sottotitoli e le tue funzioni ovunque sotto Principale. Quindi, per utilizzare questo codice per rimuovere le immagini, è sufficiente incollarlo nel modulo.

Usando le macro

È possibile eseguire il codice direttamente dall'IDE facendo clic in un punto qualsiasi all'interno del Sottomarino che si desidera eseguire e premere F5. (Le funzioni, poiché restituiscono un valore, devono essere richiamate da un Sottotitolo). È inoltre possibile utilizzare i pulsanti di dialogo o il menu per eseguire il codice. L'IDE include un debugger integrato, fondamentale per la scrittura di nuovo codice.

Alla successiva apertura della finestra di dialogo della macro, vedrai il sottotitolo elencato come macro e potrà quindi essere eseguito senza aprire l'IDE. Le singole macro possono anche essere assegnate a voci di menu o della barra degli strumenti.

Nota: questa macro verrà eseguita su qualunque sia il documento attivo. Quando si esegue una macro dal menu o dalla finestra di dialogo macro, si può presumere che sia il documento in cui è stato appena premuto il pulsante; ma quando si utilizza l'IDE per creare, eseguire o eseguire il debug del codice, assicurarsi di non aver reso un altro documento il documento attivo.

LibreOffice Basic

LibreOffice Basic è molto simile a VBA, ma tale somiglianza può anche essere ingannevole poiché il modello a oggetti è completamente diverso e anche la sintassi presenta molte differenze.

Ad esempio, in VBA, una volta ottenuto un riferimento a un oggetto immagine, l'oggetto immagine avrebbe un metodo di eliminazione. Qui, gli oggetti hanno o ereditano pochissimi metodi. Per eliminare l'oggetto immagine, utilizzare l'elemento del documento con una struttura e una sintassi molto simili a un DOM basato su browser.

La Guida di LibreOffice ha collegamenti per iniziare a utilizzare LibreOffice Basic.


Se non ci sono troppi problemi, potrebbero essere utili alcune istruzioni su come convertire effettivamente il codice in una macro. Date tutte le grida su Java, le persone dovrebbero anche sapere che è necessario un JRE per consentire alle macro di funzionare. Speriamo che LibreOffice sia finalmente privo di Java.

Genio. :) E funziona ancora in LibO Writer 5.1, potrebbe valere la pena aggiungerlo.
Dɑvïd,

5

Suppongo che il testo del documento sia formattato e che il salvataggio come solo testo non sia l'ideale. In tal caso, si potrebbe adottare un approccio piuttosto lungo:

  • Crea una cartella temporanea.

  • Apri normalmente il documento in LibreOffice.

  • Scegli Save Ase qui seleziona HTML Document (Writer) (.html)come formato.

    • Inoltre, specificare la cartella temporanea per la destinazione e assegnare al file html proposto un nome adatto. Accetta Save as htmle non dispari il formato nella schermata successiva.
  • Chiudi LibreOffice.

  • Apri la cartella temporanea creata sopra. Dovresti vedere un file html e un mucchio di immagini.

    • Elimina le immagini se non sono necessarie ulteriormente.
  • Quindi, aprire il .htmlfile in un editor di testo appropriato per eliminare i tag che altrimenti, se lasciati all'interno, causerebbero lacune nel documento.

    • Ad esempio, in Geany, ho usato <IMG SRC="[^>]+>come espressione di ricerca e niente nella casella "Sostituisci con".

Geany

  • Salva il file .html. Ora, se visualizzati in un browser o anche in LibreOffice, non ci saranno immagini, né segnaposto, solo testo formattato.

Modifica: Invece di usare un editor di testo basato sulla GUI, supponendo che uno sia nella cartella pertinente e che cli.htmlsia il nome dato durante il salvataggio htmlin LibreOffice, si potrebbe semplicemente usare la riga di comando in questo modo:

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

Un file di backup cli.html.bak, viene creato nel caso in cui ...

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.