Преобразование таблицы HTML в текст

Я работаю над проектом, который требует преобразования электронной почты в формате 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

Моя идея заключается в анализе содержимого HTML с помощью DOMDocument. Затем я установлю ширину по умолчанию для таблицы (т.е. 100 пробелов), а затем преобразую ширину каждого столбца из % в количество пробелов (на основе атрибута colspanи widthтег). Затем я вычту эту ширину столбца из strlenданных в каждом столбце, чтобы заархивировать количество пробелов, которое мне нужно для pad_right в строке, чтобы все выровнялось по вертикали.

Я работал таким образом, не было заархивировано то, что я хочу, но просто интересно, глупо ли это или кто-нибудь знает лучший способ, пожалуйста, помогите мне.

Также, когда дело доходит до многобайтовых языков (японский, корейский и т. д.), я не думаю, что мой подход сработает, потому что их символы будут больше одного пробела, и в итоге получится беспорядок.

Кто-нибудь может мне помочь?

9
задан Brian Tompsett - 汤莱恩 22 October 2017 в 08:46
поделиться