我正在开发一个需要将 html 电子邮件转换为文本的项目。以下是 HTML 代码的简化版本:
<table>
<tr>
<td width="10%"></td>
<td width="60%"> test product </td>
<td width="20%">5</td>
<td width="10%"> £50.00 </td>
</tr>
<tr>
<td></td>
<td colspan="3" width="100%"> Project Name: Test Project </td>
</tr>
<tr>
<td width="10%"> </td>
<td colspan="2" width="80%"> Page 1 : 01 New York 1.jpg </td>
<td width="10%"> £0.00 </td>
</tr>
</table>
文本文件中的预期结果应如下所示(列对齐良好):
test product 5 £50.00
Project Name: Test Project
Page 1 : 01 New York 1.jpg £0.00
我的想法是通过 DOMDocument 解析 HTML 内容。然后我将为表格设置一个默认宽度(即:100 个空格),然后将每列的宽度从 % 转换为空格数(基于标签的colspan
&width
属性)。<td>
然后,我将从每列中的数据中减去这些列宽,strlen
以归档我需要 pad_right 到字符串以使所有内容垂直对齐的空格数。
我一直在这样工作,还没有归档我想要的东西,但只是想知道这是否是愚蠢的,或者有人知道更好的方法,请帮助我。
此外,当涉及到多字节语言(日语、韩语等)时,我认为我的方法不会奏效,因为它们的字符会大于一个空格并且最终会变得一团糟。
有人可以帮帮我吗?