2008-12-13 67 views
0

我正在使用Python以用户不友好的格式读取数据,并将其转换为易于阅读的格式。我输出的记录通常只是姓氏,名字和房间代码。我以列状格式打印数据的最佳方法?

我会像输出一系列页面,每个包含总记录的连续子集,分为多列,每一个都包含在页面上的总记录的连续子集。 (换句话说,你会读第一列,移动到下一列,移动到下一列等等,然后从下一页开始......)

问题我是现在面临的情况是,对于输出格式,我几乎可以肯定地仅限于HTML(以及Javascript,CSS等)。将数据转换为列格式的最佳方式是什么?例如,如果我确定纸张的可打印区域可以垂直放置20条记录并且水平放置5条记录,则可以轻松打印5x20的表格,但我不知道是否有方法指示分页 - 我不知道是否有任何方法可以通过编程来计算页面上有多少记录。

你会如何处理这个问题?

编辑:我之所以这么说,我是在输出限制:我要生产一台计算机上的文件,然后把它带到后,我们不能安装新的软件在不同的计算机,并在其现有的选择软件不是最优的。文件本身只是用来做一个物理打印输出(这是最终用户实际使用的),但我在计算机上打印的时间会受到限制,所以我需要文件都准备好去打印并且没有很多调整。

现在我已经设法找到一个可以在目标机器上使用的文字处理器,所以我要看看能否以文字处理器使用的格式为目标。我曾经知道有一个文字处理器可以使用,我用我想要的设置(列和标签设置,等宽点等宽字体等)制作了一个简单的骨架文件,然后,然后测量每列的每行字符数以及每列获得的行数。我仔细观察了这些运行情况,以确保没有一些奇怪的线条以某种方式溢出字符 - 每行指南(当然,这不应该发生在等宽字体上,但是最终会出现多少次必须弄清楚为什么那个东西是“不应该”发生的是反正怎么回事?)

如果不曾有过的目标机器,我可以用一个字处理器,我可能会看PDF作为输出格式。

回答

3

“如果我知道某些纸张的可打印区域将举行20条垂直和五个水平”

你确实知道。

你知道你的纸张的大小。你知道你的字体的大小。你可以轻松地做数学。

“几乎可以肯定仅限于HTML ...”没有多大意义。这是一个Web应用程序吗?该页面可以有“上一页”和“下一页”按钮来浏览页面?选择一个看起来很好的尺寸,并用“上一页”和“下一页”按钮显示完整页面。

如果它应该是一个正确打印的HTML页面,那很难。有CSS可以做的事情,但你会更快乐创建一个PDF文件。

获取PyXReportLab并创建PDF打印正确。

我 - 个人 - 对此没有任何耐心。我尝试把这种东西放到一个CSV文件中。然后,我的用户可以使用工具电子表格打开CSV(Open Office Org具有良好的功能),然后调整列并使用它打印。

+0

+1 PDF似乎要去的路 – 2008-12-15 01:48:51

相关问题