Como remover todas as imagens em um documento no LibreOffice Writer?

10

Ubuntu 12.04

Quero remover todas as imagens de um documento no LibreOffice Writer. Meu documento contém ~ 350 imagens. Existe uma maneira de excluí-los em massa, em vez de um por um? Tentei desmarcar Ferramentas> Opções> LibreOffice Writer> Exibir> Tela> "Gráficos e objetos". Mas os marcadores ainda são visíveis.

Editar: eu sei sobre como salvar a página como um arquivo de texto sem formatação, mas preciso formatar meu documento.

Chella
fonte
@Chelia: Você já tentou salvar o documento como um arquivo somente de texto (nas preferências "salvar como")?
22613 stephenmyall
Mas por que desmarcar "opções> escritor do libreoffice> exibir> Exibir>" Gráficos e objetos "" não funciona? Eu tentei. Funciona para mim. Com essa configuração marcada, da próxima vez que abro qualquer documento com gráficos, apenas vejo os espaços reservados.
ele ainda precisa remover os espaços reservados @ vasa1 :)
Rinzwind
Verdade! Mas não está claro qual é o objetivo final ou por que o OP não deseja ver as imagens. Exportar como um arquivo somente de texto pode causar muita formatação.
exatamente..! Perderei toda a formatação se a salvar apenas com texto.
Chella

Respostas:

12

Você também pode usar uma macro curta no LibreOffice para remover todas as imagens em um 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 exemplo também pode ser modificado para alterar as propriedades das imagens (como torná-las todas de tamanho uniforme), além de manipular objetos de forma etc.

Criando macros

O LibreOffice fornece uma linguagem básica e também no IDE para criar, depurar, armazenar e executar código.

Para abrir a caixa de diálogo macro, use Alt+ F11ou, no menu, Ferramentas > Macros > Organizar macros > LibreOffice Basic

O código é colocado em módulos , organizados em bibliotecas . Você pode criar o seu próprio, mas, para a maioria dos propósitos, pode usar a biblioteca MyMacros interna e o Módulo1 interno .

Quando a caixa de diálogo macro estiver aberta, realce Módulo1 e pressione Editar . Isso abre o IDE.

O código é organizado em Subs e Funções. Emprestando do VBA, as Funções são usadas para retornar um valor e os Subs não retornam um valor. Você pode definir seus próprios submarinos e funções em qualquer lugar abaixo de Principal. Então, para usar esse código para remover imagens, basta colá-lo no módulo.

Usando macros

Você pode executar o código diretamente do IDE clicando em qualquer lugar dentro do Sub que deseja executar e pressione F5. (As funções, como retornam um valor, precisam ser chamadas de um Sub.) Você também pode usar os botões ou o menu de diálogo para executar o código. O IDE inclui um depurador integrado, que é crucial ao escrever um novo código.

Na próxima vez que você abrir a caixa de diálogo da macro, verá a sub-lista como uma macro e poderá ser executada sem abrir o IDE. Macros individuais também podem ser atribuídas a itens de menu ou barra de ferramentas.

Nota: Essa macro será executada em qualquer documento ativo. Ao executar uma macro no menu ou na caixa de diálogo da macro, pode-se presumir que este é o documento em que você acabou de pressionar o botão; mas ao usar o IDE para criar, executar ou depurar código, verifique se você não transformou outro documento no documento ativo.

LibreOffice Basic

O LibreOffice Basic é muito semelhante ao VBA, mas essa semelhança também pode enganar, pois o modelo de objeto é completamente diferente e a sintaxe também tem muitas diferenças.

Por exemplo, no VBA, uma vez que você tenha uma referência a um objeto de imagem, ele terá um método de exclusão. Aqui, os objetos têm ou herdam muito poucos métodos. Para excluir o objeto de imagem, use o elemento do documento com uma estrutura e sintaxe muito semelhantes a um DOM baseado em navegador.

A Ajuda do LibreOffice possui links para iniciar o LibreOffice Basic.

perseguições
fonte
Se não houver muitos problemas, algumas instruções sobre como converter o código em uma macro podem ser úteis. Dados todos os apelos sobre Java, as pessoas também devem saber que um JRE é necessário para permitir que as macros funcionem. Vamos torcer para que o LibreOffice finalmente fique livre de Java.
Gênio. :) E ainda funciona no LibO Writer 5.1, pode valer a pena adicionar.
26416
5

Estou assumindo que o texto do documento está formatado e que salvar como somente texto não é o ideal. Nesse caso, pode-se adotar uma abordagem um tanto demorada:

  • Crie uma pasta temporária.

  • Abra o documento normalmente no LibreOffice.

  • Escolha Save Ase aqui selecione HTML Document (Writer) (.html)como o formato.

    • Além disso, especifique a pasta temporária para o destino e atribua um nome adequado ao arquivo html proposto. Concorde Save as htmle não no formato odt na próxima tela.
  • Feche o LibreOffice.

  • Abra a pasta temporária criada acima. Você deve ver um arquivo html e um monte de imagens.

    • Exclua as imagens se não forem necessárias mais.
  • Em seguida, abra o .htmlarquivo em um editor de texto apropriado para remover as tags que, se deixadas, causariam lacunas no documento.

    • Por exemplo, no Geany, usei <IMG SRC="[^>]+>como expressão de pesquisa e nada na caixa "substituir por".

geany

  • Salve o arquivo .html. Agora, quando visualizados em um navegador ou mesmo no LibreOffice, não haverá imagens, espaços reservados, apenas texto formatado.

Editar: em vez de usar um editor de texto baseado em GUI, assumindo que um esteja na pasta relevante e esse cli.htmlseja o nome dado ao salvar htmlno LibreOffice, você pode simplesmente usar a linha de comando da seguinte maneira:

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

Um arquivo de backup,, cli.html.baké criado para o caso de ...


fonte