如何在LibreOffice Writer中删除文档中的所有图像?


10

Ubuntu 12.04

我想从LibreOffice Writer中的文档中删除所有图像。我的文档包含约350张图像。有没有办法删除它们集体,而不是一个接一个?我尝试取消选中工具>选项> LibreOffice Writer>视图>显示>“图形和对象”。但是占位符仍然可见。

编辑:我知道将页面另存为纯文本文件,但是我需要在文档中设置格式。


@Chelia:您是否尝试过将文档另存为纯文本文件(在“另存为”首选项中)?
stephenmyall

但是,为什么取消“选项> libreoffice编写器>视图>显示>“图形和对象””无效?我尝试过这个。这个对我有用。选中该设置后,下次我打开带有图形的任何文档时,我只会看到占位符。

他仍然需要删除占位符@ vasa1 :)
Rinzwind

真正!但目前尚不清楚最终目标是什么,或者OP为什么不想看到图像。导出为纯文本文件可能会破坏很多格式。

究竟..!如果仅保存文本,则将丢失所有格式。
Chella

Answers:


12

您还可以在LibreOffice中使用短宏来删除文档中的所有图像:

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

也可以修改此示例,以更改图像的属性(例如使图像大小均一)以及处理形状对象等。

创建宏

LibreOffice在IDE中提供了一种基本语言,以创建,调试,存储和运行代码。

要打开宏对话框,请使用Alt+ F11或从菜单> 工具 > > 组织宏 > LibreOffice Basic

代码放在模块中,这些模块被组织到库中。您可以创建自己的,但是对于大多数目的,您可以使用内置的MyMacros库和内置的Module1

打开宏对话框后,突出显示Module1并按Edit。这将打开IDE。

代码分为子函数和子函数。从VBA借用,函数用于返回值,而Subs不返回值。您可以在Main下方的任何位置定义自己的子和功能。因此,要使用此代码删除图像,只需将其粘贴到模块中。

使用宏

您可以在IDE中运行代码,方法是单击要运行的Sub内的任意位置,然后按F5。(由于函数返回值,因此需要从Sub中调用它们。)您还可以使用对话框按钮或菜单来运行代码。IDE包含集成的调试器,这在编写新代码时至关重要。

下次打开宏对话框时,您将看到该子列为宏,然后可以在不打开IDE的情况下运行它。也可以将各个宏分配给菜单或工具栏项目。

注意:此宏将在任何活动文档上运行。从菜单或宏对话框运行宏时,可以认为这是您刚刚按了按钮的文档。但是在使用IDE创建,运行或调试代码时,请确保没有将另一个文档作为活动文档。

LibreOffice Basic

LibreOffice Basic与VBA非常相似,但是由于对象模型完全不同,并且语法也有许多差异,因此相似性也可以说明。

例如,在VBA中,一旦引用了图像对象,则该图像对象将具有Delete方法。在这里,对象具有或继承很少的方法。要删除图像对象,请使用document元素,其结构和语法与基于浏览器的DOM非常相似。

LibreOffice帮助包含有关LibreOffice Basic入门的链接。


如果不是很麻烦,那么有关如何将代码实际转换为宏的一些说明可能会有所帮助。鉴于所有有关Java的呼吁,人们还应该知道需要JRE才能使宏正常工作。我们希望LibreOffice最终摆脱Java的束缚。

天才。:)仍然可以在LibO Writer 5.1中使用,可能值得补充。
德维德

5

我假设文档的文本已格式化,并且另存为纯文本不是理想的选择。在这种情况下,可以采取一种有点冗长的方法:

  • 创建一个临时文件夹。

  • 正常在LibreOffice中打开文档。

  • 选择,Save As然后在此处选择HTML Document (Writer) (.html)格式。

    • 另外,指定目标位置的临时文件夹,并为建议的html文件指定一个合适的名称。Save as html在下一个屏幕中同意而不是odt格式。
  • 关闭LibreOffice。

  • 打开上面创建的临时文件夹。您应该看到一个 html文件和一堆图像。

    • 如果不需要进一步删除图像。
  • 然后,.html在适当的文本编辑器中打开文件以去除标签,否则标签将留在文档中,从而导致空白。

    • 例如,在Geany中,我用作<IMG SRC="[^>]+>搜索表达式,而在“替换为”框中没有任何内容。

盖尼

  • 保存.html文件。现在,在浏览器或什至在LibreOffice中查看时,将没有图像,没有占位符,只有格式化的文本。

编辑:假设其中一个位于相关文件夹中,而无需使用基于GUI的文本编辑器,这cli.htmlhtml在LibreOffice中保存时指定的名称,则可以这样使用命令行:

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

cli.html.bak以防万一...创建了一个备份文件...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.