在生成一些 MySQL 脚本后,我得到了一些输出表,我用 awk+printf 排列这些表,以使所有内容都完美对齐和美观。但是,当发送给其他任何人时,如果文件在 Windows、Blackberry 或 Android 中打开,它看起来很糟糕且未对齐。
有没有我可以确定每个人都能正确阅读的格式(除了 pdf 或图像)?现在的格式是:
$ file sample.txt
sample.txt: UTF-8 Unicode text
谢谢。
在生成一些 MySQL 脚本后,我得到了一些输出表,我用 awk+printf 排列这些表,以使所有内容都完美对齐和美观。但是,当发送给其他任何人时,如果文件在 Windows、Blackberry 或 Android 中打开,它看起来很糟糕且未对齐。
有没有我可以确定每个人都能正确阅读的格式(除了 pdf 或图像)?现在的格式是:
$ file sample.txt
sample.txt: UTF-8 Unicode text
谢谢。
听起来您正在使用终端会话典型的固定宽度字体(如 courier),并依靠它很好地排列您的数据。对于那些情况,它工作正常。此外,如果用户默认他们的邮件阅读器使用固定宽度的字体。
问题是您将消息发送给使用 GUI 工具(如 Outlook、Web 邮件客户端或许多其他工具)的人,该工具使用按比例间隔的字符,因此“1”占用的空间比“0”少(例如),然后你会得到一些丑陋的东西。
如果这是针对企业项目并且支持的邮件阅读器的范围有限,您应该能够将报告“包装”并指定固定宽度的字体。即使在企业组织中,这仍然不是完美的,如果您的用户群更广泛,那么确保每个人都获得格式完美的报告变得更加困难。也许您需要添加一些限定条件,例如“使用 xxx 邮件阅读器时呈现的最佳格式”。
您可以在此处发布到https://webmasters.stackexchange.com/并寻求有关简单 HTML 格式的建议,该格式很有可能正确呈现。
IHTH
最简单、最通用的格式化文本选项是 HTML。坚持使用 HTML 2.0 或 3.2(用于表格)将为客户提供最少的出错机会。
这取决于您同事的技术知识,但我建议使用 CSV,因为这是大多数办公室中相对常见的格式。否则,是的,html 表格是一个很好的方法。
不确定数据的结构是什么,但您可以将其转换为逗号分隔的格式,或者使用 Perl/Python 脚本为您执行此操作。
如果您使用制表符 (ASCII 9),您的表格即使是成比例的字体也应该排成一行。它并不完美,但大多数程序都能正确显示。要在 printf 中创建制表符,请将其指定为\t
.
谢谢大家的意见。我的解决方案是:
由于我的 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)显示,并且保留了空格和换行符。”