【问题标题】:HTML elements not displaying in the Visualforce Page rendered as PDF in SalesforceHTML 元素未显示在 Salesforce 中呈现为 PDF 的 Visualforce 页面中
【发布时间】:2020-01-24 08:01:38
【问题描述】:

在 Salesforce 中: 我使用 Visualforce 页面中的 SVG 标签打印了条形码。但是,当 Visualforce 页面使用组件的“renderAs”属性呈现为 pdf 时,条形码不会显示!

<apex:page renderAs="pdf" sidebar="false" showHeader="false" applyBodyTag="false">
    <head>
        <script src="http://cdn.jsdelivr.net/jsbarcode/3.6.0/JsBarcode.all.min.js"></script>
        <script></script>
    </head>
    <body>
    	<svg id="barcodesvg" >Hello World!</svg>	<!-- style="width:80px; height:25px;" -->
    </body>
    <script>
    	JsBarcode("#barcodesvg", "Hey World!");
    	console.log(JsBarcode("#barcodesvg", "Hey World!"));
    </script>
</apex:page>

为此工作了一周。任何帮助将不胜感激!

【问题讨论】:

    标签: javascript salesforce apex-code visualforce


    【解决方案1】:

    Visualforce 的 PDF 渲染使用(或至少习惯于)名为 Flying Saucer 的 Java 库。 没有浏览器,也没有 JavaScript 引擎来运行您的代码。

    您必须以不同的方式生成条形码。寻找能够预渲染图像并将其保存为 PNG 附件的 JavaScript 库,然后在 VF 中使用它。或者,如果它是一个相对简单的条形码,您可以在 Apex 中进行计算并以纯 html 将其显示为一系列黑白 &lt;span&gt;s(应该很容易找到语法不太不同的 Java 或 .NET 示例实现来自 Apex ......甚至使用该 JavaScript 的源代码作为灵感)。或者也许调用另一个可以生成图像的服务器,也许将你自己的 https://github.com/zxing/zxing 实例放在某个地方(Heroku?)并调用它来生成图像。

    如果您可以在没有真正的 Visualforce renderAs="pdf" 的情况下生活(忘记在电子邮件模板、附件、任何类型的服务器代码中使用它,例如在 SF 中生成文件并上传到某处),那么它可以保留 JavaScript。指导用户如何将页面打印为 PDF,否则您可能会遇到https://github.com/MrRio/jsPDF

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多