【问题标题】:convert html table to text without loosing format in c#在c#中将html表格转换为文本而不丢失格式
【发布时间】:2014-04-23 15:44:04
【问题描述】:

我在 c# 中有一个表单应用程序,可以从 web 读取 HTML 发票 我希望它是用 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            |
 ------------------------------

【问题讨论】:

  • this 应该会有所帮助!
  • 如果我是你,我会解析 html,并让每个 html 标签代表你想要完成的事情。因此,每当您遇到 时,您都会在 for 循环中创建一系列破折号。转到下一行,当您遇到 时,请写下您的值,这些值由多个空格和“|”分隔,依此类推。只要找到模式,你就会被设置。
  • @Anirudha 我所做的这一切都是因为 POS 打印机中缺乏图形打印支持,如果我将使用 myWebBrowser.Print();或直接从浏览器打印...然后结果将相同
  • @sksallaj 这很好,但我坚持如何确定两个单词之间的空格
  • 贴一些代码,这样我就可以看到你卡在哪里了

标签: html c#-4.0


【解决方案1】:

让我试试 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 doevote 我会删除它.. 或者如果它的 k for ui 可以帮助你小提琴

【讨论】:

  • 没有兄弟,我只需要在 c# 中使用它,所以我可以使用带有 g.dwarstring 的文本直接打印
  • 您必须将 html 解析为来自您正在使用的任何程序的文本文件。
【解决方案2】:

上面的 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 代码。当我靠近我的电脑时,我会再看看这个。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签