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

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

Ubuntu 12.04

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

编辑:我知道如何将页面保存为纯文本文件,但我需要在文档中进行格式化。

答案1

您还可以使用 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 提供了 Basic 语言以及 IDE 来创建、调试、存储和运行代码。

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

代码位于模块,分为。您可以创建自己的,但对于大多数用途,您可以使用内置的我的宏库和内置模块1

打开宏对话框后,突出显示模块1并按编辑. 这将打开 IDE。

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

使用宏

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

下次打开宏对话框时,您将看到子宏被列为宏,然后无需打开 IDE 即可运行。还可以将单个宏分配给菜单或工具栏项。

笔记:此宏将在活动文档上运行。从菜单或宏对话框运行宏时,可以假定这是您刚刚按下按钮的文档;但是当使用 IDE 创建、运行或调试代码时,请确保您没有将另一个文档设为活动文档。

LibreOffice 基础版

LibreOffice Basic 与 VBA 非常相似,但这种相似性也可能具有欺骗性,因为对象模型完全不同并且语法也存在许多差异。

例如,在 VBA 中,一旦您引用了图像对象,该图像对象就会有一个删除方法。在这里,对象具有或继承的方法很少。要删除图像对象,您可以使用结构和语法与基于浏览器的 DOM 非常相似的文档元素。

LibreOffice 帮助中包含 LibreOffice Basic 入门链接。

答案2

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

  • 创建一个临时文件夹。

  • 在 LibreOffice 中正常打开文档。

  • 选择Save As并在此处选择HTML Document (Writer) (.html)作为格式。

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

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

    • 如果不再需要这些图像,请删除它们。
  • 然后,.html在适当的文本编辑器中打开该文件,删除那些如果留下来会导致文档出现空白的标签。

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

吉尼

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

编辑:不使用基于 GUI 的文本编辑器,假设一个在相关文件夹中,并且这cli.html是在 LibreOffice 中保存时给出的名称html,则可以这样使用命令行:

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

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

答案3

您可以通过鼠标选择文档中的一张图片,然后按Ctrl + A选择当前工作表中的所有图片,然后Del按 删除它们。

相关内容