我无法打印由PE:QRCODE生成的QR码使用P:打印机标签。当我将RenderMethod设置为IMG或DIV时,它根本不会渲染到屏幕上。我看不到有关如何使用该属性的任何文档。我已经看到有关需要其他罐子的各种帖子,但是看起来这是较旧的p:bacode功能的帖子。当我直接从浏览器打印时,它将打印,但我正在打印到标签上,因此不想打印整个页面。由于jQuery在客户端上生成,也许我需要使用JavaScript使其正常工作。在沿着这些其他路径走之前,我只想知道是否有人成功地打印了PrimeFaces Extensions生成的QR码。
这是一个代码的示例,该代码是一代QR代码但无法打印的代码。
<h:form>
<h:panelGrid>
<p:commandButton value="Print QR">
<p:printer target="qrCodeElem"/>
</p:commandButton>
<p:commandButton value="Print QR Panel">
<p:printer target="qrPanelId"/>
</p:commandButton>
<p:commandButton value="Print Hello">
<p:printer target="helloId"/>
</p:commandButton>
<p:panel id="qrPanelId">
<pe:qrCode id="qrCodeElem"
renderMethod="canvas"
text="someqrcode"
label="qrCodeLabel"
size="200"/>
</p:panel>
</h:panelGrid>
<p:panel id="helloId">
<h:outputText value="hello "/>
</p:panel>
</h:form>
</html>
我能够使用简单的print((命令
打印 <p:commandButton value="print()" onclick="print();"/>
我还需要CSS来告诉它不要打印我不想打印的东西。事实证明,我需要在页面上有CSS内联。将其放入我的.CSS文件中并没有忽略我不想打印的零件。这是CSS
<style type="text/css">
@media print {
.noPrint {
display: none;
}
}
</style>
用Styleclass引用它
<h:panelGrid styleClass="noPrint">