【问题标题】:Is it possible to print QR Code generated by primefaces extensions with p:printer (or other method)是否可以使用 p:printer (或其他方法)打印由 primefaces 扩展生成的 QR 码
【发布时间】:2019-10-03 04:23:13
【问题描述】:

我无法使用 p:printer 标签打印由 pe:qrCode 生成的二维码。当我将 renderMethod 设置为 img 或 div 时,它根本不会渲染到屏幕上。我没有看到任何关于如何使用该属性的文档。我看过各种关于需要其他 jar 的帖子,但看起来那是针对较旧的 p:bacode 功能。当我直接从浏览器打印时,它会打印,但我正在打印到标签,所以不想打印整个页面。由于它是由客户端上的 jQuery 生成的,所以我可能需要使用 javascript 来使其工作。在我走这些其他路径之前,我只想知道是否有人成功打印了由 primefaces 扩展生成的二维码。

这是一个生成二维码但无法打印的代码示例。

<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>

【问题讨论】:

  • 你试过直接将p:printer中的target设置为pe:qrCode的id吗?
  • 是的,这就是第一个 commandButton 的作用

标签: jsf primefaces qr-code primefaces-extensions


【解决方案1】:

我可以使用简单的 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">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2015-06-11
    相关资源
    最近更新 更多