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

Che*_*lla 11 libreoffice

Ubuntu 12.04

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

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

cha*_*kes 13

您还可以在 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
Run Code Online (Sandbox Code Playgroud)

还可以修改此示例以更改图像的属性(例如使它们都具有统一的大小)以及处理形状对象等。

创建宏

LibreOffice 提供基本语言以及 IDE 来创建、调试、存储和运行代码。

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

代码被放置在模块中,这些模块被组织成。您可以创建自己的,但在大多数情况下,您可以使用内置的MyMacros库和内置的Module1

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

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

使用宏

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

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

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

LibreOffice 基础版

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

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

LibreOffice 帮助包含用于开始使用 LibreOffice Basic 的链接。


小智 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
Run Code Online (Sandbox Code Playgroud)

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