如何将HTML转换为字符串android并打印该字符串

时间:2016-11-30 09:50:23

标签: android html url printing plaintext

我跟着this / this在EPSON打印机的POS(销售点)部分打印收据

这里我从URL获取数据Json(在Json对象中我得到一个html打印模板):

{
    "response": {
        "status": "<table>.... </table>"
    }
}

所以有意图我使用上面的json响应字符串并将其转换为html:

method = "addFeedLine";
mPrinter.addFeedLine(1);

textData.append("Test print Sample string\n");**//this is sample text**

textData.append(Html.fromHtml(status + "\n"));
**//this is JSON response which is nothing but HTML code, so I am converting it to string**

在那里,我使用status作为字符串,这样无论内容在该字符串中,都会打印出来。

如果它不是html而只是纯文本,我会像这样打印

method = "addFeedLine";
mPrinter.addFeedLine(1);
textData.append(status);

以下是status看起来像

的示例
"status": "The store list Sample\nSTORE DIRECTOR – XYZ\n01/01/01 16:58 6153 05 0191 134\nST# 21 OP# 001 TE# 01 TR# 747\n------------------------------\n400 OHEIDA 3PK SPRINGF 9.99 R\n410 3 CUP BLK TEAPOT 9.99 R\n445 EMERIL GRIDDLE/PAN 17.99 R\n438 CANDYMAKER ASSORT 4.99 R\n474 TRIPOD 8.99 R\n433 BLK LOGO PRNTED ZO 7.99 R\n458 AQUA MICROTERRY SC 6.99 R\n493 30 L BLK FF DRESS 16.99 R\n407 LEVITATING DESKTOP 7.99 R\n441 ** Blue Overprint P 2.99 R\n476 REPOSE 4 PCPM CHOC 5.49 R\n461 WESTGATE BLACK 25 59.99 R\n------------------------------\nSUBTOTAL 160.38\nTAX 14.43\nTOTAL 174.81\nCASH 200.00\nCHANGE 25.19\n------------------------------\nPurchased item total number\nSign Up and Save!\nWith Preferred Saving Card\n"

现在,我有一个简单的HTML页面:

Search Images Maps Play YouTube News Gmail Drive More »
Web History | Settings | Sign in

                  Louisa May Alcott’s 184th birthday

       [                                                         ] Advanced
                                                                   searchLanguage
                   [Google Search][I'm Feeling Lucky]              tools

 Advertising ProgrammesBusiness Solutions+GoogleAbout GoogleGoogle.com

                       © 2016 - Privacy - Terms

我需要从网址打印出来。

有谁能建议我如何打印这个纯文本? 没有HTML标记,也没有JSON数据。

5 个答案:

答案 0 :(得分:1)

通过Html.fromHtml方法,您可以将HTML转换为字符串-

String strToHtml = Html.fromHtml(htmlContentInStringFormat)

Log.e(TAG,"strToHtml :: "+strToHtml);

答案 1 :(得分:0)

如果你真的想像html那样打印它,我建议你得到主要的html代码status(在解析它之前等等)并将它推送到这样的WebView:< / p>

webview.loadDataWithBaseURL("", status, "text/html", "UTF-8", "");

否则,如果您只想将其打印到屏幕上,可以使用简单的TextView来text_view.setText(textData.toString())

答案 2 :(得分:0)

这是原始的html值:

String  htmldescription = school2.getJSONObject(0).getString("description");

这是html格式化的值:

Spanned spanned = Html.fromHtml(formattedText);

这是字符串转换:

String formattedText = spanned.toString();

从这里得到它:how to save encoded html in string
如果这没有成功,您应该查看developer docs

希望它有帮助,祝你好运!

答案 3 :(得分:0)

您可以使用简单的RegexHTML template转换为plain text。它会检测所有类型的HTML标记,但可能存在漏洞。

例如:

// Regex pattern
private static final String STR_PATTERN = "\\<[^\\>]*\\>";

public static String htmlToPlainText(final String template) {

   // replaceAll(String regex, String replacement)
   return (template.replaceAll(STR_PATTERN, ""));
}

我希望它有所帮助

答案 4 :(得分:-1)

试试这个:

WebView webview = (WebView) findViewById(R.id.MyWebview);
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary, "text/html", "utf-8");