将html表转换为文本而不会丢失c#中的格式

时间:2014-03-18 05:41:37

标签: html c#-4.0

我在c#中有一个表单应用程序,它从Web上读取HTML Invoice 我希望它是用POS打印机打印的文本输出。

<table border="1">
  <tr>
     <td>Hello</td>
     <td>World</td>
  </tr>
  <tr>
     <td>foo</td>
     <td>bar</td>
  </tr>
</table>

我正在寻找能够采用上表并创建如下内容的东西。

 ------------------------------
 | Hello     | World          |
 ------------------------------
 | foo       | bar            |
 ------------------------------

2 个答案:

答案 0 :(得分:0)

让我试一试jquery ..

var innerHtml = $('#table').html();
innerHtml  = innerHtml.replaceAll('<table border="1">','');
innerHtml  = innerHtml.replaceAll('</table>','------------------------------');
innerHtml  = innerHtml.replaceAll('<tr>','------------------------------');
innerHtml  = innerHtml.replaceAll('<td>','   |  ');
innerHtml  = innerHtml.replaceAll('</td>','  |  ');
innerHtml  = innerHtml.replaceAll('</tr>','<br />');

并且你可以使用这个innerHtml显示你的表..这个答案是jst一试..如果它的完全错误jst doenvote我会删除它..或者如果它为你的ui可以帮助你与小提琴

答案 1 :(得分:0)

C#中的jQuery代码:

string innerHtml = getHTMLInvoiceFromWeb();
innerHtml  = innerHtml.Replace("<table border=\"1\">", "");
innerHtml  = innerHtml.Replace("</table>", "------------------------------");
innerHtml  = innerHtml.Replace("<tr>", "------------------------------");
//Use tabs instead of a fixed number of whitespace
innerHtml  = innerHtml.Replace("<td>", "|\t\t");
innerHtml  = innerHtml.Replace("</td>", "\t\t|\t\t");
innerHtml  = innerHtml.Replace("</tr>", "\n");

最后,我还没有尝试过上面的代码,我只是重写了chriz的jQuery代码。当我靠近我的电脑时,我会再看看这个。