使用HTML::TextToHTML保留列

使用HTML::TextToHTML保留列,html,css,perl,Html,Css,Perl,我有一个Perl脚本,它使用 有些原文有准表格,因为它们的对齐很重要 比如说 Job no Description Completed 15 Paving from NE 32 to 45th 11-01-17 现在我正在使用这个代码 use HTML::TextToHTML; my $conv = new HTML::TextToHTML(); if ( $HTML eq 'Y' ) { # convert entire body to HTML

我有一个Perl脚本,它使用

有些原文有准表格,因为它们的对齐很重要

比如说

Job no Description               Completed
15     Paving from NE 32 to 45th  11-01-17
现在我正在使用这个代码

use HTML::TextToHTML;

my $conv = new HTML::TextToHTML();

if ( $HTML eq 'Y' ) { # convert entire body to HTML                                                                                  

    $body = $conv->process_chunk($body);
}
但是,在某些电子邮件客户端上,行上的代码通常会丢失适当的间距


HTML::TextToHTML
中有没有办法保留行的宽度及其对齐方式?

您不会比设置

make_tables => 1
在构造函数中,以及可能的设置中

table_type => { ALIGN => 1, PGSQL => 0, BORDER => 0, DELIM => 0 }
将由两个或多个空格分隔的字拆分为表的列


但是,您可能需要对原始文本文件进行一些编辑,以获得最佳结果。例如,您的列标题将是
Job no Description
Completed
,因为
Job no

之后只有一个空格,据我所知,这似乎是在TextToHTML的约束下工作的最佳答案,尽管对齐方式对我来说仍然不太合适。我开始探索Emaill::Template,以便尝试创建外观更好的html电子邮件。@Gatoreina:远不如
html::TextToHTML
聪明,主要是关于实际发送邮件。对于从随机文本中猜测HTML标记,我怀疑您是否能找到比后者更好的解决方案。除非你的文字表现良好,否则这是一项不可能完成的任务。那么像Itunes收据这样的电子邮件是如何做到的呢?他们只是把一个文本文件转换成HTML吗?@Gatorena:我对iTunes一无所知,但如果你说的是从苹果公司收到一份电子邮件收据,那么他们就会有一个软件来创建收据的HTML格式。这当然不是创建一个文本文件并通过翻译算法来实现的问题。如果可能的表的范围相当有限,那么您可以编写一些Perl来为行添加更精确的分隔符,然后使用
DELIM
表类型。