OOo 走出围墙:宏和插件

作者:Bruce Byfield

编者注:本文自最初发布以来已进行修订。

开源社区如此令人兴奋的特点之一是其成员不是软件的被动消费者,而是软件方向的积极参与者。OpenOffice.org 也不例外。虽然这种态度发展缓慢——可能是因为项目规模庞大——但在过去一年中,OpenOffice.org 社区已经开始对办公套件的开发产生影响。

诚然,基础开发仍然严重依赖 Sun Microsystems 的员工——有些人可能会说过于依赖。然而,志愿者现在凭借宏和插件崭露头角。宏是用 OOoBasic 编写的脚本,可以从文档中运行,而插件是直接集成到 OpenOffice.org 安装中的功能,通常使用另一种编程语言,例如 Python。可能这个改变最好的例子是 Laurence Godard 的 DicOOo 宏,它安装拼写检查、断字和同义词词典,以及 FontOOo 宏,它安装互联网上可用的免费字体。这两个宏都已作为自动驾驶程序添加,并且是它们首次发布的版本中的主要功能。

目前,大约有二十几个人积极发布宏和插件。其他人活跃在 API 列表中,但他们的努力尚未普遍可用。

以下是一些公开发布的 OOo 宏和插件的小样本。大多数以 GNU GPL 或 LGPL 发布,但互联网上提供的一些宏和插件使用其他许可证,您可能需要在下载之前阅读这些许可证,以确保它们与您的信仰兼容。样本之后是一组关于使用和安装它们的简要说明。

与 Godard 的宏集合不同,这些宏都没有成为 OpenOffice.org 的官方组成部分,尽管可能有一两个会获得这种认可的标志。然而,即使没有官方认可,您也可以轻松地将它们的功能添加到您的 OpenOffice.org 副本中。

当 StarOffice 开源时,剥离的专有元素包括 WordPerfect 的导入和导出过滤器。WordPerfect 已经近十年没有成为主流办公格式了,但它几年前对 Linux 的短暂支持留下了一批忠实用户,对他们来说,读取该格式的能力非常重要。WriterPerfect 项目由 William Lachance、Marc Maurer 和其他贡献者构建,旨在通过各种方式使用其 libwpd 库为 OpenOffice.org、AbiWord 以及未来的 KWord 提供这种能力。

WriterPerfect 本身就是一个导入过滤器。它可以与 StarOffice WordPerfect 过滤器相媲美,并且根据我的经验,它似乎比 OOo 的 MS Word 过滤器做得更好。然而,像大多数过滤器一样,它的结果需要调整,尤其是在复杂文档上使用时。我唯一的抱怨是网站上既没有静态 tarball 也没有 Debian 软件包。但是,两者都可以从源代码构建,并且项目中的独立程序 wpd2sxw 现在是 Debian unstable 的一部分。

这组宏是最早提供的宏之一,并且不断更新。它包括各种功能,其中大多数都经过良好注释并且很有用(如果不是特别引人注目),如果您有兴趣学习如何编写自己的宏。例如,其中两个用于将 Writer 文本转换为纯文本电子邮件;一个添加两个回车符来标记段落的开始,另一个删除弯引号和 en-破折号,以便仅使用基本的 ASCII 集。其他宏应用标题样式、插入特殊字符并更改所选字母的大小写。

此集合中的亮点是选定的字数统计。尽管包含宏的文档指出表单项目和字段可能会抛出计数,但此宏添加了 Writer 中缺少但经常请求的功能。

OOo Off the Wall: Macros and Add-ons

Alexej Kryukov 的历史管理器是一个插件,用于调整文件菜单底部最近使用的文件数量。默认情况下,OpenOffice.org 仅显示四个,但大多数人更喜欢更长的列表。可以破解显示的文件数量,但历史管理器提供了一个干净的界面来编辑列表。

Danny Brewer 的 最近文件列表更改器 通过宏提供相同的功能。

ReferenceManager 由 Ian Laurenson 构建,旨在处理交叉引用、设置引用和书签的集合。宏集合允许重新分配和查找引用和书签。它还可以删除引用而不删除文本,并查找孤立的引用。界面起初令人困惑,直到您意识到两个窗格上方的单选按钮标识了内容。否则,宏集合非常适合学术工作。一个特别有用的功能是演示按钮,Laurenson 似乎将其添加到他的大多数宏中。

OOo Off the Wall: Macros and Add-ons

Writer 的交叉引用系统的弱点之一是交叉引用之前和之间的文本必须手动添加。可以通过创建包含文本的用户定义字段来自动化该过程,但这仍然需要在字段窗口中的选项卡之间来回翻转,并且鼠标点击次数过多。Ian Laurenson 的大纲交叉引用器通过提供一个 GUI 来补救这一点,在该 GUI 中可以组成整个引用。尽管 GUI 相当拥挤,并且在单击“插入”按钮和看到文本中输入的引用之间存在很长的延迟,但如果您经常使用交叉引用,则此宏是必备的。

OOo Off the Wall: Macros and Add-ons

在当前版本中,OpenOffice.org 的“导出为 PDF”工具令人失望。虽然它通常在 Linux 下生成可接受的 PDF——在 Windows 下问题更多——但有时会在带有精心格式化的表格的文档上崩溃或自发地更改字体。此外,即使它工作正常,它也无法生成书签或活动链接。据说这些功能将在 2.0 版本中推出。与此同时,Martin Brown 的 ExtendedPDF 不仅提供了缺失的功能,而且还处理了那些让“导出为 PDF”工具失败的文件。界面确实警告说,页面顶部的段落间距和表格间距可能会导致超链接错位,但在十几个 PDF 中,其中大多数都很长,我从未见过任何问题。

OOo Off the Wall: Macros and Add-ons

ExtendedPDF 需要 Ghostscript,大多数桌面 Linux 安装都默认包含它。它还需要使用 OpenOffice.org 的 spadmin 工具设置 postscript 打印机驱动程序。这些要求在 ExtendedPDF 分发的 Writer 文档中得到了彻底的解释。该文档甚至包括关于如何将宏添加到工具栏的标准说明。

宏本身在一个干净的界面中打开。与 PDF 的三个级别相比,“导出为”有五个质量级别可用,以及三个不同的 PDF 版本。其他选择包括 PDF 打开时的视图、输出文件夹和从中生成书签的样式。PDF 安全性的选项卡显示为灰色,但考虑到 PDF 中可用的低级复制保护,这种缺失几乎无关紧要。这些设置还包括一个选项,用于在 PDF 创建后在您选择的查看器中打开它——一个小小的功能,但它可以自动化大多数人无论如何都会执行的步骤。

通过为详细的 PDF 生成提供 GUI,ExtendedPDF 填补了 OpenOffice.org 和 Linux 桌面生产力中的空白。在我看来,这使其成为此宏集合中绝对必不可少的一个。

使宏可访问

当您选择“工具”>“宏”>“宏”时,所有来自打开文档的宏都会在“宏来源”字段中列出。如果您选择允许在打开文档时运行宏,则其他文档可以使用其宏。否则,宏仅在它们附加到的文档中运行。

您可以按照以下步骤,使文档的宏可以从任何 OpenOffice.org 文档访问,而无需每次想要使用其宏时都打开文档

  1. 选择“工具”>“宏”>“宏”>“管理器”>“库”。

  2. 在“库”选项卡上,在“应用程序/文档”下拉列表中选择“soffice”。

  3. 选择“追加”按钮。将打开一个文件浏览器。

  4. 选择包含您要添加的宏的文件,然后选择“确定”按钮。“追加库”窗口将打开。

  5. 选择您要添加的宏库。然后,单击“确定”按钮并关闭其余对话框。

为了使宏更易于访问,您可以

  • 通过从工具栏的右键单击菜单中选择“自定义”将其添加到工具栏。在“自定义工具栏”窗口中,宏列在“可用按钮”窗格中。使用“添加”箭头将宏的按钮放置在“正在使用的按钮”窗格中,并使用“上移”和“下移”按钮将新按钮放置在您想要的位置。使用“图标”按钮分配图标或将按钮保留为文本。

  • 通过选择“工具”>“配置”>“菜单”>“。”将其添加到菜单。使用“类别”窗格导航模块和库,从窗口的“功能”部分中选择宏。突出显示宏后,在“菜单项”窗格中选择宏位置,然后选择“新建”>“确定”。使用箭头按钮重新定位宏,或使用“新建菜单”在添加宏之前创建新的顶级菜单。

  • 通过选择“工具”>“配置”>“键盘”将其分配给击键组合。使用“类别”窗格导航模块和库,从窗口的“功能”部分中选择宏。突出显示宏,然后选择“快捷键”,然后选择“分配”>“确定”。

一些宏,尤其是用 OOoBasic 以外的语言编写的宏,被打包为插件。这些宏以 zip 文件形式提供。它们放置在 OpenOffice.org 安装目录的 /user/uno_packages 文件夹中,并通过运行以下命令安装pkgchk从 /program 文件夹。安装后,插件可能会添加图标、菜单或菜单项,具体取决于它们的打包方式。通常,插件项会添加到“工具”菜单,该菜单在子菜单上列出所有已安装的插件。

结论

这些只是 OpenOffice.org 可用的宏和插件的一部分选择。我选择了 Writer 的工具,因为它是 OOo 套件中使用最广泛的应用程序。OOo 宏页面 列出了许多其他 OOo 应用程序的工具。特别是,Calc 用户可能有兴趣下载 David Hitchcock 的 OOo 统计,它类似于 MS Excel 的分析工具库,而 Draw 用户可能会在 Danny Brewer 的 Danny 的 Draw Power Tools 站点找到进一步宏的灵感。

对编写自己的宏感兴趣的开发人员可能想查看开发人员页面 OOoMacrosAndrew Pitonyak 的主页。Pitonyak 是最近发布的 OpenOffice.org 宏详解 的作者。虽然 Pitonyak 的书在很大程度上是一个非结构化的知识倾泻,但它仍然是从公认的 OOoBasic 专家那里获得的宝贵技巧集合。

Open Source 社区仍在实现 OpenOffice.org 的宏和插件的可能性。尽管 OpenOffice.org 最近完成了作为项目的第四年,但可用的工具中很少有超过一年的,许多甚至不到半年。作为观察这个子社区的局外人,我的印象是社区才刚刚开始崭露头角。资源终于开始变得可用,合作的初步成果也开始显现。如果这个社区的潜力得以实现,那么明年应该会看到一个蓬勃发展的社区和一套无穷无尽的最终用户新资源。

Bruce Byfield 曾任 Stormix Technologies 的产品经理和 Progeny Linux System 的营销和传播总监。他还曾是 Maximum Linux 的特约编辑和 Desktop Debian 手册的原始作者。离开电脑后,他听朋克民谣音乐,饲养鹦鹉,并凭自己的意愿跑很长、痛苦的距离。

加载 Disqus 评论