OpenOffice.org 成为焦点

作者:Cezary M. Kruk

OpenOffice.org 是一套出色的软件,由几个有用的组件组成,提供了许多选项。它是可定制的,并为文档引入了许多开放格式。为了使基本配置适应您的特定需求,OpenOffice.org 允许您准备宏和附加脚本。

我在一家波兰自由软件杂志担任编辑。在编辑过程的开始,作者提供文本,编辑进行编辑。编辑意味着删除常见的与内容相关的和正式的错误或错误,以及以标准形式准备文本,以便于在进一步的阶段处理。然后,校对员校对文本,编辑再次查看并进行最终更改。最后,排版员准备用于打印的文本,编辑最后一次检查整个作品。

在此过程的每个阶段,处理后的文本都采用不同的格式。我们的出版社偏爱文档的开放格式,因此我们的作者以文本或 HTML 格式提交文档,并以 PNG 或 EPS 格式提交图形。编辑文档后,编辑将副本发送给作者——该副本是 HTML 格式。我们的校对员在 Microsoft Windows 系统上工作并使用 Microsoft Word,因此他们需要文档采用 .doc 文件格式。我们的排版员在 Macintosh 系统上工作并使用 QuarkXPress。他们需要两种文档:用于打印和检查文章所需格式的 Microsoft Word 文件,以及用于在 Quark 中打开文件并处理它们的 Macintosh 文本文件。

当我们的季刊于 2000 年秋季创刊时,我正在使用 StarOffice。从那时起,我切换到了 OpenOffice.org。使用作者文本文件的方法对于 StarOffice 和 OpenOffice.org 来说是相似的。我使用 StarWriter(以前)或 OpenOffice.org Writer(现在)以文本或 HTML 格式导入文档,并且——在处理之后——我将其导出为 HTML、Microsoft Word 或相应的 SDW 或 SXW 文件格式。

OpenOffice.org in the Limelight

图 1. KillparZ 宏有助于预处理导入的文本文件。

导入文本和 HTML 文件

如果源文件准备良好,则导入时应该没有问题。如果文件已损坏,则必须修复。如果您考虑到文档的开放格式,这并不难做到。

文件导入后,您需要将其更改为正确的格式。波兰语、德语、法语或其他非英语语言出版物的编辑也应更改代码页。例如,波兰语文档的标准代码页是 ISO-8859-2,而所有 OpenOffice.org 文档的标准代码页是 UTF-8。为了方便地转换导入的文档,您需要一个宏。我为 OpenOffice.org 构建的宏包含几个代码页转换器,包括从 ISO-8859-2 到 UTF-8 以及反向转换的转换器。

在某些文本编辑器中编写的文本文件中的段落可能会分成多行。为了合并它们,您需要使用 KillparZ 宏,它是 Andrew Brown 的 killpars 宏的改进版本(图 1)。KillparZ 是 ooo-macro 捆绑包的一个组件。

假设文档的作者声明了适当的字符集,那么当您导入 HTML 文件时,代码页应该没有问题。但可能会出现另一个问题——与您的宏关联的快捷方式在 HTML 文档中停止工作。为了使宏工作,您需要创建一个空的 OpenOffice.org Writer 文档,打开 HTML 文件,复制它,关闭 HTML 文件,最后将内容粘贴到 Writer 文档中。

代码页和 DOC

我们的杂志以波兰语出版,因此在导出文件时,我需要使用更复杂的方法。具体来说,我需要使用带有波兰语变音符号的字体。我对 StarWriter 和 OpenOffice.org Writer 的测试表明,如果您想避免与非英语语言文档中的代码页相关的问题,则应使用 TrueType 字体而不是 Type1 字体。此外,如果您使用与 Microsoft Windows 中使用的字体相同的字体,则可以将文档导出为 Microsoft Word 格式,从而获得最佳效果。Microsoft 字体捆绑在 Microsoft FontPack 中,包括 Times New Roman、Arial 和 Courier New,在大多数情况下都足够了。

StarOffice 和 OpenOffice.org 的作者不得不使用一些逆向工程来发现 Microsoft Word 格式是如何构建的。因此,从 Writer 到 Word 的导出过滤器工作良好,但并非完美。因此,如果您想与其他用户交换标准文档类型,请准备一个典型的文档,使用所有必要的格式,包括标题、斜体和粗体。然后将样本提供给同事,并询问他们一切是否正常。

我们发表的文章是一种简单的文档。我们的编辑部使用上述三种字体,以及斜体和粗体、两级标题和直表。我们不在文档中包含图形;我们只是列出 PNG 或 EPS 格式的文件的名称。此类文档可以从 SDW 或 SXW 格式导出到 Microsoft Word,没有任何问题。

OpenOffice.org in the Limelight

图 2. OpenOffice.org 导出的 HTML 文件——它使用样式、类和许多其他不需要的格式。

OpenOffice.org in the Limelight

图 3. 使用 soffice2html 过滤器转换的相同 HTML 文件——更标准化且更易读。

OpenOffice.org in the Limelight

图 4. CHIP Special 编辑人员,从左到右:Robert Bielecki(编辑)、Romek Gnitecki(主编)、Cezary M. Kruk (CHIP Special Linux) 和 Tomek Borukalo(编辑)。

HTML 格式

以 HTML 格式获取正确的文档稍微困难一些。StarWriter 和 OpenOffice.org Writer 生成复杂的 HTML,如图 2 所示。但是,您可以使用简单的 Perl 脚本转换此 HTML。我称我的脚本为 soffice2html。在脚本的开头,您应该指示它将行尾替换为空格,如下所示

s/\n/ /;

接下来,您可以将代码的某些元素替换为不同的元素。例如,使用命令

s/<(\/?)B>/<$1STRONG>/g;
s/<(\/?)I>/<$1EM>/g;

您可以将所有 <B> ... </B> 和 <I> ... </I> 标签对替换为 <STRONG> ... </STRONG> 和 <EM> ... </EM> 标签对,以便根据既定标准记录粗体和斜体。然后,您可以删除不需要的标签,例如

s/<EM><EM>/<EM>/g;
s/<\/EM><\/EM>/<\/EM>/g;

在此之后,最好恢复一些行尾。简单的命令,例如

s/(.+?)</$1\n</g;
s/>(.+?)/>\n$1/g;

在每个 HTML 标签之前和之后放置行尾标记。为了使您的脚本更专业,您可以添加最后的润色,使用命令

print OUT "<!-- ", "soffice2html: ",
          scalar localtime, " -->\n";

这会在处理后的 HTML 文件中添加注释,类似于

<!-- soffice2html: Wed Jul 23 17:34:35 2003 -->

现在,如果您从 document.sxw 开始并将其导出为 document.html,则应使用以下命令处理后者soffice2html document.html(图 3)。以这种方式过滤 HTML 文件可以生成更好——也就是说,更标准化和更易读——的代码,并且文件大小缩小 15%–40%。当前版本的 ooo-macro 捆绑包包含 soffice2html 脚本。

要从文档生成简单的 Macintosh 文本文件,您应该将其保存在使用适当字符集的文本编码文件类型中。例如,对于波兰语文档,有效集是东欧。

这种导出方法对于常见任务来说足够好,但对于排版目的来说不太好。我们的文章在讨论特定任务和其他特殊字符时,经常需要使用键盘敲击符号。当您使用标准方法生成 Macintosh 文本文件时,您会丢失所有这些字符。为了保留它们,您需要一个宏来将字符从 UTF-8 转换为 Macintosh 代码页。适当的宏 recode_utf_8_to_apple_macintosh 是 ooo-macro 捆绑包的一部分。

为了使用上述宏生成文本文件,请运行它,然后使用系统字符集和 CR 段落分隔符将文档另存为文本编码文件类型。该文件包含使排版员的工作更快更轻松的信息。

成为焦点

使用 OpenOffice.org Writer 作为编辑工具,您可以处理文档并在作者、校对员和排版员之间共享文档,这对所有参与者来说都是透明的。您只需要 Writer、一些 TrueType 字体、一小捆宏和用于准备精美 HTML 文件的 Perl 脚本。

本文资源: www.linuxjournal.com/article/7925

Cezary M. Kruk 居住在波兰弗罗茨瓦夫。他是波兰季刊 CHIP Special Linux 的编辑。

加载 Disqus 评论