【问题标题】:NetSuite Advanced PDF - How to set <#ftl output_format = "HTML" />NetSuite 高级 PDF - 如何设置 <#ftl output_format = "HTML" />
【发布时间】:2020-01-11 17:07:03
【问题描述】:

在过去的几年里,我制作了很多很多高级 PDF。有一件事总是坚持...

这主要适用于 SuiteScript 呈现的 PDF 模板。

如果用户字段包含 & 或 -- 或任何其他未封装的字符串文字,则 PDF 错误。默认output_formatundefined

我正在查看 FTL 文档,可以设置 &lt;#ftl output_format = "HTML" /&gt;,但无论我将它放在 PDF 模板的哪个位置,它都会失败。

我需要在模板中的特定位置声明它吗?

在所有地方用“&”替换“&”是不可行的......

【问题讨论】:

    标签: netsuite freemarker suitescript2.0


    【解决方案1】:

    不确定这是否回答了您要问的确切问题,但我认为 输出 格式不是您的问题。我的理解是输出格式是指模板生成的内容 - 即:最终渲染。在任何情况下,输出格式都应该是 XML,因为这是 BFO 标记库在您创建 PDF 时使用的格式。

    我认为问题在于,当字符串文字包含“&”、“”的 XML 控制字符时,您的 XML 本身无效。为避免这种情况,在使用 SuiteScript 构建模板和添加字符串时,您可以使用 N/xml 模块的 xml.escape() 方法来包装任何可能包含这些字符之一的内容。

    很抱歉,如果我对此有所误解,但希望对您有所帮助。

    【讨论】:

    • 接近我所追求的,但不幸的是这个方法转义了整个模板,把所有的HTML标签字符变成了>和 <等等。本质上,我正在查看 freemarker 命令来设置我希望自动“修复”任何非法字符的输出,例如自动将 & 字符转换为 &无论它们出现在模板中的什么位置;换句话说,在所有字符串变量之后不再需要使用?replace("&amp;","&amp;amp;")
    猜你喜欢
    • 2018-01-01
    • 2017-03-08
    • 2018-01-02
    • 2017-02-20
    • 2023-01-31
    • 2018-10-20
    • 2019-07-18
    • 2017-02-19
    • 2021-07-04
    相关资源
    最近更新 更多