标签 文件格式 下的文章

探索 Collabora Online 的互操作性,使文档和电子表格在所有办公套件中兼容。

Collabora Online 支持各种各样的文件和格式。不过,这个开源办公套件在互操作性方面的表现如何?本文仔细研究了 Collabora Online 与不同办公套件(如 Microsoft 365 和 Google Workspace)交换复杂文本文档和电子表格的能力。

Collabora Online 是一款适用于云端或内部的开源办公套件,可以保护你的隐私,让你完全控制你的数据。该软件由位于剑桥的 Collabora Productivity Ltd 开发,其团队在世界各地工作。Collabora Online 以 LibreOffice 技术为基础,并主要使用 Mozilla Public License 2.0 许可。

Collabora Online 可以在任何现代网络浏览器中运行,不需要额外的插件或附加组件。它有一个完整的基于云的办公套件,包括一个文字处理器(Writer)、电子表格程序(Calc)、演示软件(Impress)和一个设计矢量图的应用(Draw)。

本文介绍了 Collabora Online 的一些新的互操作性功能,包括宏、动态字体加载和电子表格应用程序的 Sparklines 支持。这些功能扩展了现有的对微软文件格式的出色处理。

什么是互操作性,为什么它很重要?

一般来说,互操作性是指不同的设备或应用在一起工作和无缝交换数据的能力。在办公套件的背景下,互操作性主要是指文件格式。用户应该能够打开、编辑和保存 .doc 和 .docx、.xls 和 .xlsx、.odt 和 .ods文件,无论它们是用微软的 Word、苹果的 iWork 还是 LibreOffice 创建。

对于在线办公套件也是如此。通过确保文件可以在 Microsoft 365、Google Workspace 和 Collabora Online 之间交换,互操作性有助于提高生产力和促进协作。所有在线办公套件都可以保存各种格式的文件。它们还可以导入和导出最初在其他办公套件中创建的文档、电子表格和演示文稿。

管理宏,确保文件处理顺畅

经常引起问题的是带有宏的文件。它们通常是用特定的编程语言开发的,适用于某个特定的应用。虽然在 Google Sheets 中记录和编辑宏是可能的,但在微软 Office 中用 Visual Basic for Applications(VBA)实现的宏不能被转换,必须用 Google Apps Script 重新创建。打开带有 VBA 宏的 Word 文档会产生错误,并通知用户这些宏将被忽略或禁用。

Collabora Online 支持宏,并在容器内的服务器端运行它们。该功能默认是禁用的,管理员必须在 coolwsd.xml 配置文件中明确激活它。之后,用户可以选择在加载文档时允许使用宏。不过,有几个限制。例如,它不可能访问数据库源,访问其他(外部)文件,调用外部程序,使用控制形状,等等。多年来,由于活跃的社区以及客户和合作伙伴的贡献,Collabora Online 支持的代码和对象的数量已经大大增加。

Collabora Online:动态字体加载

办公套件中互操作性的另一个关键方面是字体。使用含有在特定平台上无法使用的字体的文档,可能会导致错误、意外的格式变化,甚至是内容的完全丢失。

微软 Office 文档经常使用 Google Workspace 或 Collabora Online 中没有的默认字体。为了解决这个问题,办公套件经常建议替换掉缺失的字体。这通常是有用的,但有时会导致不好的结果。

从 22.05.7 版本(2022 年 11 月发布)开始,Collabora Online 可以列出缺失的字体并建议替换。它还可以下载必要的字体并将其添加到服务器上。一切都是动态进行的,而不会停机。新的字体在几分钟内就可以在编辑会话中使用,实现最佳的互操作性。

Fonts can introduce a surprising complexity to your document, but Collabora Online can handle it.

为了实现这一目标,在文档被渲染的同时,通过 API 追踪丢失字体的信息。一个 JSON 文件存储了需要添加的字体列表。coolwsd.xml 文件(服务器端的设置)指向该 JSON 文件。它每分钟检查一次修改情况,并下载缺少的字体。

探索 Sparkline:显示电子表格中的数据趋势

Sparkline 是在工作表中单个单元格内的微小图表,它可以将数据的趋势可视化。这些微型图表有不同的风格,包括线、条和柱。Sparkline 还支持不同的颜色和水平/垂直轴。与显示尽可能多的数据并与文本流分开的大型图表不同,Sparkline 被缩减为核心值,通常放在同一单元格中数据本身的旁边或后面。Sparkline 通常是为一个单元格定义的,但也可以将共享相同数据范围和属性的多个 Sparkline 进行分组,以便进行渲染。

Customize the look of Sparklines.

Sparkline 是一个紧凑的参考,提供了一个快速的方法来说明趋势、模式、统计异常、增加和减少,同时避免了完整图表的复杂性。下面是一些不同的 Sparkline 类型:

  • 线形图: 通过线段从左到右连接各点,对于显示在一定时间内变化的数据特别有用。
  • 条形图: 使用水平排列的条形图表示数据,通常用于比较数字数据。
  • 柱状图: 是比较一系列数值的理想选择。柱是垂直的,其长度表示数据的相对大小/价值。柱状图经常被用来表示不同类别或群体的数据。

要创建一个 Sparkline,你首先要为该函数定义一个输入数据范围(一列或一行中的两个或多个单元格)。你还可以决定你希望 Sparkline 出现的单元格。在大多数电子表格应用中,你右键点击迷你图表来调整其属性,选择图表类型,并选择颜色。Collabora Online 为此提供了一个单独的对话框,使得改变微型图表的风格变得简单而方便。

在三个线上办公软件之间交换带有 Sparkline 的文件是可能的,不会丢失图表及其格式。如果你想在 Microsoft 365、Google Workspace 和 Collabora Online 之间共享电子表格,请确保使用微软格式的 .xlsx 进行导入和导出,因为 Google Sheets 不能很好地处理 .ods 文件。

文件交换很容易

Collabora Online 提供了几个新的互操作性功能,使得与其他办公套件交换文件变得容易。宏程序支持、动态字体加载和 Sparkline 确保了文档的无缝处理,避免了意外的格式变化。使用 Collabora Online 来统一和简化你的办公工作。

(题图:MJ:Office docs process dark plain background Illustration )


via: https://opensource.com/article/23/4/open-source-collabora-online-interoperability

作者:Heike Jurzik 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

作为一名 Linux 管理员,你可能已经注意到了一些开发者请求将文件从 DOS 格式转换为 Unix 格式,反之亦然。

这是因为这些文件是在 Windows 系统上创建的,并由于某种原因被复制到 Linux 系统上。

这本身没什么问题,但 Linux 系统上的一些应用可能不能理解这些新的换行符,所以在使用之前,你需要转换它们。

DOS 文本文件带有回车(CR 或 \r)和换行(LF 或 \n)一对字符作为它们的换行符,而 Unix 文本只有换行(LF)符。

有很多方法可以将 DOS 文本文件转换为 Unix 格式。

但我推荐使用一个名为 dos2unix / unix2dos 的特殊工具将文本在 DOS 和 Unix 格式之间转换。

  • dos2unix :将文本文件从 DOS 格式转换为 Unix 格式。
  • unix2dos :将文本文件从 Unix 格式转换为 DOS 格式。
  • tr、awk 和 sed 命令:这些可以用于相同的目的。

使用 od( 八进制转储 octal dump )命令可以很容易地识别文件是 DOS 格式还是 Unix 格式,如下图所示:

# od -bc windows.txt
0000000 125 156 151 170 040 151 163 040 141 040 146 162 145 145 040 157
U n i x i s a f r e e o
0000020 160 145 156 163 157 165 162 143 145 040 157 160 145 162 141 164
p e n s o u r c e o p e r a t
0000040 151 156 147 040 163 171 163 164 145 155 015 012 123 165 160 145
i n g s y s t e m \r \n S u p e
0000060 162 040 143 157 155 160 165 164 145 162 163 040 141 162 145 040
r c o m p u t e r s a r e
0000100 162 165 156 156 151 156 147 040 157 156 040 125 116 111 130 015
r u n n i n g o n U N I X \r
0000120 012 071 065 045 040 157 146 040 167 145 142 163 151 164 145 163
\n 9 5 % o f w e b s i t e s
0000140 040 141 162 145 040 162 165 156 156 151 156 147 040 157 156 040
a r e r u n n i n g o n
0000160 114 151 156 165 170 040 117 123 015 012 101 156 171 164 150 151
L i n u x O S \r \n A n y t h i
0000200 156 147 040 143 141 156 040 142 145 040 144 157 156 145 040 157
n g c a n b e d o n e o
0000220 156 040 114 151 156 165 170 015 012
n L i n u x \r \n
0000231

上面的输出清楚地表明这是一个 DOS 格式的文件,因为它包含了转义序列 `
`。

同时,当你在终端上打印文件输出时,你会得到下面的输出:

# cat windows.txt
Unix is a free opensource operating system
Super computers are running on UNIX
95% of websites are running on Linux OS
Anything can be done on Linux

如何在 Linux 上安装 dos2unix?

dos2unix 可以很容易地从发行版的官方仓库中安装。

对于 RHEL/CentOS 6/7 系统,使用 yum 命令 安装 dos2unix。

$ sudo yum install -y dos2unix

对于 RHEL/CentOS 8 和 Fedora 系统,使用 dnf 命令 安装 dos2unix。

$ sudo yum install -y dos2unix

对于基于 Debian 的系统,使用 apt 命令 或 apt-get 命令 来安装 dos2unix。

$ sudo apt-get update
$ sudo apt-get install dos2unix

对于 openSUSE 系统,使用 zypper命令 安装 dos2unix。

$ sudo zypper install -y dos2unix

1)如何将 DOS 文件转换为 UNIX 格式?

以下命令将 windows.txt 文件从 DOS 转换为 Unix 格式。

对该文件的修改是删除文件每行的 \r。

# dos2unix windows.txt
dos2unix: converting file windows.txt to Unix format …
# cat windows.txt
0000000 125 156 151 170 040 151 163 040 141 040 146 162 145 145 040 157
U n i x i s a f r e e o
0000020 160 145 156 163 157 165 162 143 145 040 157 160 145 162 141 164
p e n s o u r c e o p e r a t
0000040 151 156 147 040 163 171 163 164 145 155 012 123 165 160 145 162
i n g s y s t e m \n S u p e r
0000060 040 143 157 155 160 165 164 145 162 163 040 141 162 145 040 162
c o m p u t e r s a r e r
0000100 165 156 156 151 156 147 040 157 156 040 125 116 111 130 012 071
u n n i n g o n U N I X \n 9
0000120 065 045 040 157 146 040 167 145 142 163 151 164 145 163 040 141
5 % o f w e b s i t e s a
0000140 162 145 040 162 165 156 156 151 156 147 040 157 156 040 114 151
r e r u n n i n g o n L i
0000160 156 165 170 040 117 123 012 101 156 171 164 150 151 156 147 040
n u x O S \n A n y t h i n g
0000200 143 141 156 040 142 145 040 144 157 156 145 040 157 156 040 114
c a n b e d o n e o n L
0000220 151 156 165 170 012
i n u x \n
0000225

上面的命令将覆盖原始文件。

如果你想保留原始文件,请使用以下命令。这将把转换后的输出保存为一个新文件。

# dos2unix -n windows.txt unix.txt
dos2unix: converting file windows.txt to file unix.txt in Unix format …

1a)如何使用 tr 命令将 DOS 文件转换为 UNIX 格式。

正如文章开头所讨论的,你可以如下所示使用 tr 命令将 DOS 文件转换为 Unix 格式。

Syntax: tr -d '\r' < source_file > output_file

下面的 tr 命令将 DOS 格式的文件 windows.txt 转换为 Unix 格式文件 unix.txt。

# tr -d '\r' < windows.txt >unix.txt

注意:不能使用 tr 命令将文件从 Unix 格式转换为 Windows(DOS)。

1b)如何使用 awk 命令将 DOS 文件转换为 UNIX 格式。

使用以下 awk 命令格式将 DOS 文件转换为 Unix 格式。

Syntax: awk '{ sub("\r$", ""); print }' source_file.txt > output_file.txt

以下 awk 命令将 DOS 文件 windows.txt 转换为 Unix 格式文件 unix.txt。

# awk '{ sub("\r$", ""); print }' windows.txt > unix.txt

2)如何将 UNIX 文件转换为 DOS 格式?

当你把一个文件从 UNIX 转换为 DOS 格式时,它会在每一行中添加一个回车(CR 或 \r)。

# unix2dos unix.txt
unix2dos: converting file unix.txt to DOS format …

该命令将保留原始文件。

# unix2dos -n unix.txt windows.txt
unix2dos: converting file unix.txt to file windows.txt in DOS format …

2a)如何使用 awk 命令将 UNIX 文件转换为 DOS 格式?

使用以下 awk 命令格式将 UNIX 文件转换为 DOS 格式。

Syntax: awk 'sub("$", "\r")' source_file.txt > output_file.txt

下面的 awk 命令将 unix.txt 文件转换为 DOS 格式文件 windows.txt。

# awk 'sub("$", "\r")' unix.txt > windows.txt

via: https://www.2daygeek.com/how-to-convert-text-files-between-unix-and-dos-windows-formats/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出