Answers:
您还可以在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入门的链接。
我假设文档的文本已格式化,并且另存为纯文本不是理想的选择。在这种情况下,可以采取一种有点冗长的方法:
创建一个临时文件夹。
正常在LibreOffice中打开文档。
选择,Save As
然后在此处选择HTML Document (Writer) (.html)
格式。
Save as html
在下一个屏幕中同意而不是odt格式。关闭LibreOffice。
打开上面创建的临时文件夹。您应该看到一个 html文件和一堆图像。
然后,.html
在适当的文本编辑器中打开文件以去除标签,否则标签将留在文档中,从而导致空白。
<IMG SRC="[^>]+>
搜索表达式,而在“替换为”框中没有任何内容。编辑:假设其中一个位于相关文件夹中,而无需使用基于GUI的文本编辑器,这cli.html
是html
在LibreOffice中保存时指定的名称,则可以这样使用命令行:
perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html
cli.html.bak
以防万一...创建了一个备份文件...