专栏首页张善友的专栏在OpenOffice.org和微软Office之间共享文档

在OpenOffice.org和微软Office之间共享文档

原文:Sharing files between OpenOffice.org and Microsoft Office。翻译可能也比较随意。 本文版权请向原文网站及原作者咨询。仅在已经获取原文使用权的情况下,以下文字可自由使用。本翻译未获原网站或原作者授权。 要用OpenOffice.org,不可避免的问题之一就是如何同MS Office共享文档。有些人可不想这么做,他们会建设使用HTML/PDF/RTF来共享,但这仍然不是长久之计,特别是你的老板用MS Office的时候。其实这件事不难,只要搞明白什么能共享,什么不能,两边都不会再感到头痛。 在OpenOffice.org中,用File > Wizards > Document Converter就可以把一个目录下的所有微软文档都转换成OpenOffice文档,如果你只在乎内容,而忽略一些小的格式上的不便的话,这个小工具就足够了。 在OpenOffice.org 2.0中,把一个文件输出为MS Office文档已经非常简单。但总还有一些MS的特性不被OOo支持或不能完全支持,这些不能完美支持的特性在输出时就会简单抛弃掉。所以,要完美共享文档的前提就是搞明白哪些特性能被OOo完美支持。 共享的准备 第一步是要确定一个输出过滤器,OOo2.0支持Word 6.0, 97/2000/XP以及2003xml几种,这里,请坚持选用97/2000/XP这个,因为它是目前毛病最少的过滤器,虽然不完美也不是最新格式。(OOo对MS格式的理解是通过猜测实验或许反向工程的手段进行的,不可能是完美的。译注) 第2步,如果格式很重要,请确认在OOo里所用的字体在MS Office里面也能使用。否则,MS会用相同字号的Times Roman字体来替换所有找不着的字体,这样格式就全毁了。在从Linux共享到Windows的时候,这个问题可能会比较严重,但不论什么平台,最好都确认一下。 如果你坚持只用标准字体,即Times Roman 或 Helvetica(中文应该坚持用宋体-Simsun或用黑体作为强调,不要用粗体,因为Linux平台对中文粗体的支持还有点麻烦。在正规出版物上中文也没有粗体的用法。)如果在所有机器上都安装了OOo,还可以使用Bitstream Vera字体,这是一个TTF的开源字体,但它的效果可能会比较柔和一些。如果你对美术效果比较在意,解决方法是在所有机器上装上所有字体(请先检查许可协议),或者用PDF来共享文件。 如果你用了非标准字体,请记住名字一样绝不意味着字体真的效果一样,比如有许多字体名字叫Garamond,但它们中间只有很少一些是相同的。对中文而言,微软字体、中易字体、方正字体、华文字体等相同名字之间也都有不小的差别。更麻烦的是,这些字体对Linux而言都有麻烦,简单地用宋体或黑体或仿宋或楷应该是推荐的。 下面对OOo自己进行设置。首先,选中所有在Tools > Options > Load/Save > Microsoft Office下面的选项,这可以提升OOo对OLE的支持--仅在支持OLE对象的系统上有效。其次,选中所有在Load/Save > VBA Properties中的选项,这样就可以在OOo另存时保存文档中的VB脚本(OOo不会执行这些脚本),如果不选中,则这些VB脚本就会被扔掉。 事先注意这些事可以极大地减轻共享文档的痛苦。但如果想在共享中完美地保留格式,则还需要一些手段。而如果你在设定格式时使用样式,而不是手工设定字符和段落,则这个手段会变得很简单。样式可以保存在一个模板文件中,因此你只需要设定一次即可。最重要的是,字符和段落的样式可以完美地从OOo Writer迁移到MS Word,这样就容易多了。 在开始共享文档之前,打开一个空白的Writer窗口,选中Tools > Options > OpenOffice.org Writer > Compatibility中的选项。其中有一些是为了兼容StarOffice--OOo的商业版本,但其中有半数都是为了兼容MS Word。其中有些设置,是为了让OOo像MS Word那样增加行距和对象边距的:   在段落和表格之间添加空白(当前文档)   不在行间增加额外间距   在表格单元的底部增加段落和表格间距   定位对象时考虑折行 如果是在导入MS Word文档,应该选中“在页顶部(当前文档)增加段落和表格间距”。如果所有的电脑都使用同一型号的打印机或PS打印机,则不论导入还是导出,都应该选中“在格式化时使用打印机单位”。这一选项提供了一个独立于软件的通用标准。(注:这些选项相当有用,以前打开一个有表格的Word文档时,经常出现格式超高的情况,这样设置即可消除。) 在设置时,可以点击Use as Default(设为缺省值)来把你的选择设为缺省值。也有些设置只针对当前文档,这可以通过保存为模板来保留:File > Template > Save。 在Writer和Word之间共享文档 有了以上的设置,共享文档应该问题就比较少了。可能的困难包括插入对象和页面级别的格式化。 字符和段落格式,不论手工设置还是使用样式,通常迁移是简单的。如果所用的字体都有,则字体、字号、效果以及定位都是没有问题的;字符旋转和字体宽度的变化亦无迁移问题。基本的段落格式也是同样,比如行间距和Tab(制表符)。OOo使用的列表格式是MS Office不支持的,但同本个列表样式相联系的段落可以在Word中也使用相同类型的列表。段落格式中不被MS Word支持的特性包括自定义连字符,分页,两端对齐的段落的最后一行,这些元素会因为Word的缺省设置而被抛弃。所以结果就是分页和断行会有些微的不同--多数也不过在行数上多了一行。 在OOo的早期版本中,有序列表(用数字做前缀的)和无序列表(用各种符号做前缀)在转换中是个问题,主要是因为它和Word在无序列表中用不同的字符来做前缀。但在2.0中,这个问题基本没有。使用特殊字符做前缀仍旧会有问题,那是因为OOo用了Unicode,而Word仍旧使用Ansi字符,除此之外,高级的如前缀(数字或字符)前后的文字都可以正确的转换。关于列表最大的问题在于Tools > Outline Numbering的使用,它会让存为MS Word格式不能成功。 多数域的使用也没有问题,包括页码,交叉引用和目录。实际上,即便是自定义的目录,比如页码在前,都可以成功地在Word中打开。而另外一些域,比如要依赖于文档属性的字数统计,会被转成普通文本,这在两个软件中来回转换时必然要出问题。还有些和条件文本有关的域在Word中完全不工作,如隐藏文本,隐藏段落和输入列表。隐藏文本在Word中直接消失,隐藏段落会显示出来,而输入列表会固定在当前的选择上。 插入对象的情况比较复杂,许多普通的对象可以正常使用。超链接可以,除非它带着个帧,同样的还有备注和修订信息。 图片的设置,包括尺寸、锚定和对齐都没有问题,但如果在Writer中设定了Align as Character会比较麻烦,这种情况下Word会不显示这个图片。复杂的表格和边框设置一般没有问题,但嵌套表格在Word中不能工作。用绘图工具绘出的图形没有问题,但图形编号以及复杂图表也不行。脚注一般没有问题,但一般会有页码重排的麻烦,所以最后还是在文档最后做尾注。 也有不少对象是不能转换的,包括动画和嵌入的OOo文档。在Linux上用OOo时,来自Word文件的OLE对象也不能转换,因为操作系统根本不支持它们,除非是在Insert > Object菜单下列出的那些。 另外一些不能成功转换的东西多是和页面布局有关的,因为MS Word根本没有考虑印刷问题。页面样式中的页边距可以保留,但页面样式自己会丢失。同样的还有除去第一个之外的所有页眉和页脚,以及为它们设定的边框和阴影。同样,文本框可以转换,但它们的设置会丢掉。Section不行,甚至更麻烦的它们还会被当作分页符,此外还有密码保护和隐藏设置。而文本框或Section中分成多栏的,经常会只显示前面几行。 对于主控文档这种概念,既不能导入也不能导出。 在Calc和Excel之间共享文档 这两个速算表程序之间转换问题主要是函数,基本的函数,比如SUM, AVERAGE, 和 MAX 通常没有问题。但另复杂的函数可就未必,使用之前请查阅在线帮助。虽然Calc是按同Excel兼容的目标设计的,但它们都有专用的函数。其中除了缺乏某函数之外,还有Calc会有两个相似的函数,第一个是正常使用的,第二个是专为兼容Excel设计的。WEEKNUM可以根据ISO 6801来计算给定数据的星期数,WEEKNUM_ADD却是专门兼容Excel的相同功能的函数。 如同Writer一样,对象的情况也很复杂。特殊的图表是不行的,页面和单元格样式也不行,尽管使用样式的单元格的格式可以保存。 在Impress和PowerPoint之间共享文档 在OOo2.0中,PPT的过滤器比以前要可靠得多。比如,不能转换主幻灯片中的背景图片的毛病已经没有了。幻灯片的导出也相当可靠,虽然还需要一些实验。但OOo Impress生成的GIF动画在PowerPoint中仍旧不能打开。另外,复杂的图表也不可靠。所以推荐用Draw来生成图表,再转成通用的图片格式再插入。 从PowerPoint中导入时,要注意到Impress不会理会多数声音的设置。尽管Impress在2.0中已经增加了对更多种声音格式的支持,但它仍然缺乏记录声音和对话的工具,也不能在幻灯中播放CD音轨。Impress中的声音仅限于单张幻灯片中。另外,Impress也不支持PowerPoint的打包功能,也不能把所有图片声音和字体都保存到CDROM中。 共享Draw文件 Draw自己的格式,odg/sxd,都不被MS Office支持。但Draw可以输出多种常见的图形格式,包括png/gif/jpeg在内。这些格式都可以被MS Office插入。所以共享方案只能是保留原始文件,但输出成图片。 结论 这还不是一个完整的能否工作的特性列表,事实上也还没有这个列表。在线帮助已经提示了可能存在问题的地方,但现在的MS Office并未把OOo 2.0当回事,甚至还表现出一些不必要的偏执。 最后,如果真有什么在两套Office软件之间共享文档的秘诀的话,那就是:保持简单。格式越简单,就越少问题。对象,页面设置以及超出文字和段落以外的样式都可能出现问题。 还有必须记住的是,除非是最简单的情况,否则情况不大可能是完美的。在办公软件之间共享文档总是很难的。对商业公司来说,设计输入输出过滤器是非常昂贵的,对自由软件开发者来说又完全没有吸引力。更由于MS使用专有格式,而且还经常改来改去,开发者只能用反向工程的手段,这样就更难以进步了。 在这种情况下,共享文档时有些问题再正常不过,倒是如果你能完美共享的话还真是令人惊奇。 http://blog.cathayan.org/item/1038

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 开源项目Generics.Net介绍

    STL (标准模版库,Standard Template Library)各种不同类型的容器(container)、模板(template)、游标(Iterat...

    张善友
  • 微软开源全新的文档生成工具DocFX

    微软放弃Sandcastle有些年头了,微软最近开源了全新的文档生成工具DocFX,目前支持C#和VB,类似JSDoc或Sphinx,可以从源代码中提取注释生成...

    张善友
  • 进程监控工具supervisor 启动Mongodb

    进程监控工具supervisor 启动Mongodb 一什么是supervisor Superviosr是一个UNIX-like系统上的进程监控工具。 Supe...

    张善友
  • 完整手写一个朴素贝叶斯分类器,完成文本分类

    Part 1: 本文解决的问题: 我在有这样的一个数据集,里面存放了人们对近期播放电影的评价,当然评价也就分成两部分,好评和差评。我们想利用这些数据训练一个模...

    机器学习AI算法工程
  • SEO人员,为什么审查旧链接?

    我们过去在深夜,常常花费大量时间进行深度的研究,以进行潜在的链接交换研究,并试图寻找到更好的解决方案,用于SEO外链推广。

    蝙蝠侠IT
  • 世界上第一个全软体机器人,没有任何硬电子元件

    近日,据 Technology Review 报道,哈佛研究人员通过巧妙的设计,研发了世界首款能够自主移动的全软体机器人“Octobot”。哈佛研究人员表示 O...

    机器人网
  • 数据结构与算法

    树的遍历分为深度优先搜索和广度优先搜索。深度优先搜索有先序遍历、中序遍历、和后序遍历三种方式。广度优先搜索是层次遍历。

    不作声
  • java中网络编程用什么模式?

    马克-to-win:一台机器还没玩转,现在又想靠网络操作别的机器,可想有多难吧!但是Sun公司把那些访问网络的难题细节(信息块的连接、打包和拆包,块的来回运输,...

    马克java社区
  • leetcode: 41. First Missing Positive

    JNingWei
  • SNIP验证EDI文件

    SNIP验证指的是一系列可应用于EDI文件的约束条件,以确保EDI数据符合HIPAA标准。因此,SNIP验证支持是选择EDI处理解决方案时需要考虑的一个重要因素...

    知行软件EDI

扫码关注云+社区

领取腾讯云代金券