【问题标题】:Render custom field's value as rendered HTML not literal value将自定义字段的值呈现为呈现的 HTML 而不是文字值
【发布时间】:2020-07-02 01:13:44
【问题描述】:

我正在尝试在 NetSuite 的高级 PDF/HTML 模板中打印 HTML 内容。有谁知道这是否可能?

在本例中,custbody_print_content 是一个自定义字段。它的值为:

<h1>Tiger</h1>

模板源代码如下所示:

<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">

<pdf>
  <body>
    ${record.custbody_print_content}
  </body>
</pdf>

我得到这个输出:

<h1>Tiger</h1>

但我不想要文字 HTML。我想要解释的 HTML,像这样:

老虎



我尝试了一些 cmets 中提到的内置函数,但仍然没有得到我想要的。下图显示了模板和打印输出。 Zebra 示例具有预期的结果。


【问题讨论】:

    标签: netsuite freemarker


    【解决方案1】:

    您可以使用 no_esc 内置。例如

     ${record.custbody_print_content?no_esc}
    

    另外我不认为这应该有所作为,但你的 xml 是不寻常的,因为它没有 head 元素

    尝试去掉 DOCTYPE 和 &lt;pdf&gt; 元素之间的多余空间,并将其添加到 &lt;body&gt; 开始标记之前

    <head>
        <link name="verdana" type="font" subtype="opentype" src="${nsfont.verdana}" src-bold="${nsfont.verdana_bold}" bytes="2"></link>
    </head>
    

    【讨论】:

    • 啊,再一次击败我! :)
    • 我还有什么遗漏的吗?保存模板时,我不断收到错误消息。它似乎不喜欢“?no_esc”。 [第 5 行第 24 列模板“模板”中的语法错误:此处不能使用 ?no_esc,因为当前输出格式不是标记(转义)格式:未定义(mimeType=null,class=fcUndefinedOutputFormat) ]
    • 还是不行。 "?html" 将文本转换为 html 实体。现在打印显示:<h1>Tigers</h1>
    • 如何知道自定义记录的价值是多少?您是否尝试过检索它并将其打印到控制台?或者在 xml 视图中查看它? (将&amp;xml=T添加到记录的url)
    • 该值似乎还可以。 XML 是“Tiger”。在浏览器控制台中,nlapiGetFieldValue('custbody_print_content') 为 "Tiger"。
    【解决方案2】:

    看起来 NetSuite 在保存时会转义 html。这意味着当您在表单的文本框中键入时:

    <b>Marmot</b>
    

    NetSuite“转义”它并像这样保存它:

    &lt;b&gt;Marmot&lt;/b&gt;
    

    所以在 FreeMarker 模板中,您需要取消转义它。我找不到任何内置功能来执行此操作,但我可以使用?replace。我当前的解决方案如下所示:

    <?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">
    
    <pdf>
        <body>
            ${record.custbody_print_content?replace('<br />', '')?replace('&lt;', "\l")?replace('&gt;', "\g")}
        </body>
    </pdf>
    

    如果有人知道更简单的方法,请告诉我。

    【讨论】:

      猜你喜欢
      • 2010-11-11
      • 2017-12-06
      • 2012-03-31
      • 2021-11-16
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2015-09-20
      相关资源
      最近更新 更多