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)作为格式。
Save as html在下一个屏幕中同意而不是 odt 格式。关闭 LibreOffice。
打开上面创建的临时文件夹。您应该会看到一个html 文件和一堆图像。
然后,.html在适当的文本编辑器中打开文件以去除标签,否则,如果保留这些标签,则会导致文档中出现空白。
<IMG SRC="[^>]+>搜索表达式,而“替换为”框中没有任何内容。
编辑:而不是使用基于 GUI 的文本编辑器,假设一个位于相关文件夹中并且这cli.html是html在 LibreOffice 中保存时给出的名称,则可以这样使用命令行:
perl -p -i.bak -e 's/<IMG[^>]+>//g' cli.html
Run Code Online (Sandbox Code Playgroud)
cli.html.bak创建一个备份文件,以防万一...
| 归档时间: |
|
| 查看次数: |
10269 次 |
| 最近记录: |