【问题标题】:dom parser is ignoring strong tagdom 解析器忽略强标签
【发布时间】:2018-06-01 06:40:46
【问题描述】:

我想使用 dom 解析器将 html 转换为文本。当我使用 dom 解析器时,它会忽略所有 html 标签。我需要解析考虑所有 html 标签的文本。 我需要一个像我一样的文字strong 但我越来越坚强了

 handleClick() {
var data = [{Text1:"<strong>Strong text</strong>"}]
            var encodedStr = data[0].Text1
            var parser = new DOMParser();
                    var dom = parser.parseFromString(
                        encodedStr,
                        'text/html');
                        console.log(dom.body.textContent)
                    var decodedString = dom.body.textContent;

                    console.log(decodedString)
                    var docDefinition = { content: [{ text: decodedString, fontSize: 9, alignment: 'justify', margin: [5, 2, 10, 20] },], pageOrientation: 'portrait', pageSize: 'A4' };
                    pdfMake.createPdf(docDefinition).download('optionalName.pdf');

                    console.log(this.decodedString)


                }

【问题讨论】:

  • 你得到了textContent,显然你不会得到标记。如果你想要的是标记,那么要么不解析你的字符串 (oO),要么使用 XMLSerializer 来获取 XHTML 版本,或者 Element 的内部/外部 HTML 属性。

标签: jquery html reactjs domparser pdfmake


【解决方案1】:

您可以通过更改您的 docDefinition 尝试以下方法,

var docDefinition = {
  content: [
    { text: decodedString, style: 'header' },
  ],

  styles: {
    header: {
      fontSize: 9,bold: true, alignment: 'justify', margin: [5, 2, 10, 20]
    }
  },
  pageOrientation: 'portrait', 
  pageSize: 'A4' 
};

【讨论】:

  • 我猜是因为您正在解析字符串并提供用于创建 pdf 的简单文本
  • 是的,因为 pdf make 只能接受文本,所以我需要转换为文本。如果我传递 html 内容,则会出错
猜你喜欢
  • 2015-11-07
  • 1970-01-01
  • 2011-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多