OpenOffice 无法在周二打印 (2009)

Lobsters Hottest 新闻

摘要

文章描述了一个错误,导致OpenOffice仅在周二打印失败。这是由于'file'工具中的模式匹配错误,因日期格式问题将PostScript文件误识别为Erlang JAM文件。

<p><a href="https://lobste.rs/s/im3eeh/openoffice_does_not_print_on_tuesdays">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/28 13:37

# OpenOffice 周二无法打印 来源:https://beza1e1.tuxen.de/lore/print_on_tuesday.html 来源(通过 Paul Wise 转引自 http://catless.ncl.ac.uk/Risks/25/77#subj14.1) 今天我在一篇博客上看到一个有趣的 bug。问题是某些用户的打印功能偶尔会失败。后来有人提到,他的妻子一直抱怨说周二无法打印! 在查看 bug 报告时,起初人们都坚称这肯定是 OpenOffice 的 bug,因为其他所有应用程序都能正常打印。另一些人则指出该问题时好时坏。一位用户找到了解决方案:完全卸载并重装 OpenOffice(在 Ubuntu 上这很简单)。他在周四报告说这个方法解决了他的打印问题。 两周后,他在周二报告说这个方法实际上并不奏效。近四个月后,一位 Ubuntu 黑客的妻子抱怨说 OpenOffice 在周二无法打印。我能想象那个场景: 妻子:史蒂夫,打印机周二就罢工了。 史蒂夫:那是打印机的休息日——它当然不会在周二打印。 妻子:不,我是认真的!我周二用 OpenOffice 就打印不了。 史蒂夫:(难以置信地)好吧...演示给我看看。 妻子:现在没法演示给你看。 史蒂夫:(翻白眼)为什么? 妻子:因为今天是周三! 史蒂夫:(点头。缓缓说道)好吧... 这个问题似乎最终追溯到一个名为 'file' 的程序。这个 *NIX 工具通过模式匹配来检测文件类型。例如,如果文件以 '%!' 开头后接 'PS-Adobe-',则会被识别为 PostScript 文件。似乎 OpenOffice 会在 PostScript 文件中写入日期。在周二,日期格式会显示为:%%CreationDate: (Tue MMM D hh:mm:...) 由于用于检测 Erlang JAM 文件的模式存在错误,导致 PostScript 文件中的 'Tue' 被识别为 Erlang JAM 文件,因此,大概,该文件就没有被发送到打印机。 Erlang JAM 文件的匹配模式是: ``` 4 string Tue Jan 22 14:32:44 MET 1991 Erlang JAM file - version 4.2 ``` 它本应是: ``` 4 string Tue\ Jan\ 22\ 14:32:44\ MET\ 1991 Erlang JAM file - version 4.2 ``` 鉴于这个程序试图匹配的文件类型数量庞大(超过 1600 种),模式中出现错误并不奇怪,而且匹配顺序也可能导致误报频繁。在这个案例中,Erlang JAM 文件的匹配发生在 PostScript 匹配之前。 参考 (http://mdzlog.alcor.net/2009/08/15/bohrbugs-openoffice-org-wont-print-on-tuesdays/),Bug 报告 (https://bugs.edge.launchpad.net/ubuntu/+source/file/+bug/248619) --- 更多此类离奇故事 (https://beza1e1.tuxen.de/lore/index.html) ©2023-11-22

相似文章

致办公套件用户的一封公开信,就在Euro-Office宣布之前

Lobsters Hottest

文档基金会(The Document Foundation)纠正了关于Euro-Office是首个欧洲开源办公套件的说法,强调了LibreOffice和OpenOffice.org的历史,并批评Euro-Office使用微软专有的OOXML格式,认为这违背了数字主权(digital sovereignty)。

Euro-Office、开放标准与原生 ODF

Hacker News Top

文档基金会欢迎 Euro-Office 对开放标准的承诺,但敦促其采用 ODF 作为原生文档格式以实现真正的数字主权,并纠正了关于 Euro-Office 是欧洲首个开源办公套件的说法。

Dates That Don't Exist (2015)

Hacker News Top

A blog post exploring the nonexistent dates of October 5-14, 1582 due to the Gregorian calendar reform, and how Ruby, Python, and Perl handle these invalid dates.

公元零年二月的一个错误

Hacker News Top

PHP 的 DateTimeImmutable 中一个罕见的错误导致公元零年二月出现日期偏差一天的问题;解决方法是使用替代的时间戳转换方法。