1

在生成一些 MySQL 脚本后,我得到了一些输出表,我用 awk+printf 排列这些表,以使所有内容都完美对齐和美观。但是,当发送给其他任何人时,如果文件在 Windows、Blackberry 或 Android 中打开,它看起来很糟糕且未对齐。

有没有我可以确定每个人都能正确阅读的格式(除了 pdf 或图像)?现在的格式是:

$ file sample.txt 
sample.txt: UTF-8 Unicode text

谢谢。

4

5 回答 5

1

听起来您正在使用终端会话典型的固定宽度字体(如 courier),并依靠它很好地排列您的数据。对于那些情况,它工作正常。此外,如果用户默认他们的邮件阅读器使用固定宽度的字体。

问题是您将消息发送给使用 GUI 工具(如 Outlook、Web 邮件客户端或许多其他工具)的人,该工具使用按比例间隔的字符,因此“1”占用的空间比“0”少(例如),然后你会得到一些丑陋的东西。

如果这是针对企业项目并且支持的邮件阅读器的范围有限,您应该能够将报告“包装”并指定固定宽度的字体。即使在企业组织中,这仍然不是完美的,如果您的用户群更广泛,那么确保每个人都获得格式完美的报告变得更加困难。也许您需要添加一些限定条件,例如“使用 xxx 邮件阅读器时呈现的最佳格式”。

您可以在此处发布到https://webmasters.stackexchange.com/并寻求有关简单 HTML 格式的建议,该格式很有可能正确呈现。

IHTH

于 2013-01-04T21:56:16.670 回答
1

最简单、最通用的格式化文本选项是 HTML。坚持使用 HTML 2.0 或 3.2(用于表格)将为客户提供最少的出错机会。

于 2013-01-04T21:56:56.240 回答
1

这取决于您同事的技术知识,但我建议使用 CSV,因为这是大多数办公室中相对常见的格式。否则,是的,html 表格是一个很好的方法。

不确定数据的结构是什么,但您可以将其转换为逗号分隔的格式,或者使用 Perl/Python 脚本为您执行此操作。

于 2013-01-04T21:59:54.373 回答
1

如果您使用制表符 (ASCII 9),您的表格即使是成比例的字体也应该排成一行。它并不完美,但大多数程序都能正确显示。要在 printf 中创建制表符,请将其指定为\t.

于 2013-01-04T22:06:29.137 回答
1

谢谢大家的意见。我的解决方案是:

  1. 我尝试使用 txt2htm 来检查我的原始代码(我的意思是我的数据表)是如何被转换的。
  2. 我安排了一些代码以使其成为最简单的方法。
  3. 由于我的 txt 文件已经“很好”,我只需在我必须与他人共享的每个 txt 文件的开头和结尾插入以下代码。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    <pre>
    
    HERE GOES MY FIXED WIDTH TABLE
    
    </pre>
    </body>
    </html>
    

这里的关键标签是<pre>,字面意思是:

<pre>标签定义了预格式化的文本。<pre>元素中的文本以固定宽度的字体(通常是 Courier)显示,并且保留了空格和换行符。”

于 2013-01-05T11:16:07.823 回答