Можно ли напечатать QR-код, сгенерированный расширениями простых лиц, с помощью p: printer (или другим способом) - PullRequest
1 голос
/ 16 мая 2019

Я не могу напечатать QR-код, сгенерированный pe: qrCode, используя тег p: printer.Когда я устанавливаю renderMethod на img или div, он вообще не отображается на экране.Я не вижу никакой документации о том, как использовать этот атрибут.Я видел различные сообщения о необходимости использования других jar-файлов, но похоже, что это было для более старой функциональности p: bacode.Когда я печатаю прямо из браузера, он печатает, но я печатаю на этикетках, поэтому не хочу печатать всю страницу.Так как он генерируется jQuery на клиенте, возможно, мне нужно использовать javascript, чтобы он работал.Прежде чем идти по этим другим путям, я просто хочу узнать, удалось ли кому-нибудь напечатать 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>

1 Ответ

2 голосов
/ 22 мая 2019

Мне удалось распечатать, используя простую команду print ()

 <p:commandButton value="print()" onclick="print();"/>

Мне также нужно было, чтобы css запретил печатать то, что я не хотел печатать. Оказалось, что мне нужно иметь встроенный CSS на странице. Помещение этого в мой файл .css не игнорировало части, которые я не хотел печатать. Вот ксс

<style type="text/css">
@media print {
    .noPrint {
        display: none;
    }
  }
 </style>

Ссылка с помощью styleClass

   <h:panelGrid styleClass="noPrint">
...