HTML 元素未显示在 Visualforce 页面中,在 Salesforce 中呈现为 PDF



In Salesforce: 我已经在Visualforce页面中使用SVG标签打印了一个条形码。但是,当使用组件的"renderAs"属性将 Visualforce 页面呈现为 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>

已经工作了一个星期。任何帮助将不胜感激!

Visualforce的PDF渲染使用(或至少用于(称为Flying Saucer的Java库。 没有这样的浏览器,没有JavaScript引擎来运行你的代码。

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

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

最新更新