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

Posted

技术标签:

【中文标题】如何将 HTML 转换为字符串 android 并打印该字符串【英文标题】:How to Convert HTML to String android and print that string 【发布时间】:2017-04-14 13:58:31 【问题描述】:

我跟随this/this在EPSON Printer的部分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

我需要从 url 打印这个。

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

【问题讨论】:

那些提到的链接无法访问..所以最好发布您正在使用的 sdk 的名称和正确描述,而不是像您那样引用链接。 我在底部更新了链接,我们有 sdk 的下载链接.....所有投反对票的人请投票,所有答案的人请投票我已经在赏金中放松了 【参考方案1】:

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

String strToHtml = Html.fromHtml(htmlContentInStringFormat)

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

【讨论】:

【参考方案2】:

如果你真的想像 html 一样打印它,我建议你获取主要的 html 代码 status(在解析它之前),然后将它推送到这样的 WebView 中:

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

否则,如果你只是想将它打印到屏幕上,你可以使用一个简单的 TextView 来做到这一点 text_view.setText(textData.toString())

【讨论】:

是的,我想打印不查看...它的theremal打印 请更好地解释你自己。首先,您所说的“打印”是什么意思(是在屏幕上打印?还是发送给打印服务?)。其次,当您说“或如何将此纯文本添加到字符串”时,您的意思是什么,因为您已经有了“状态”字符串。您真的需要将字符串发送到给定的打印服务吗? 我不知道你如何打印热敏打印屏幕??????我说的是它的热敏打印,我跟着EPSON热敏打印机SDK这里没有webview【参考方案3】:

这是原始的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

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

【讨论】:

【参考方案4】:

您可以使用简单的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, ""));

希望对你有帮助

【讨论】:

其实有网址我想打印那个网址里面的内容

以上是关于如何将 HTML 转换为字符串 android 并打印该字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中将字符串转换为日期时间[关闭]

android:如何将字符串转换为日期

将 JSON 字符串转换为对象并显示为 HTML 表格

如何将字符串转换为 html 颜色代码哈希?

当 minifyEnabled 为 true 时,如何将 JSON 字符串转换为自定义对象?

Android - 如何将图片从 webview.capturePicture() 转换为 byte[] 并返回位图