Vistas

En src/main/webapp creamos el archivo index.xhtml y escribimos lo siguiente:
     
 <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">
     
    <h:head>
    <title>GenBarCode</title>
    </h:head>
 
    <h:body>
    
    <style type="text/css">
    body .ui-panelgrid .ui-panelgrid-cell:last-child {
        background-color: #ffffff;
    }
</style>
 
  <h:form>
  
 <p:fieldset legend="GenBarCode" style="margin-bottom:20px">
        <h:panelGrid columns="1" cellpadding="5">
            
            <h:outputText
                value="Seleciona el formato de código de barras que quieras generar." />
                    <p:linkButton value="Ver ejemplos" outcome="ejemplos"   target="_blank"    style="margin-right:20px;">
    
</p:linkButton>
        </h:panelGrid>
    </p:fieldset>


  <p:growl id="msgs" showDetail="true" />
 
        <p:dashboard id="board" model="#{barCodeBean.model}">
            <p:ajax event="reorder" listener="#{barCodeBean.handleReorder}" update="msgs" />
             <p:panel id="formatos" header="Seleccionar Formato" >
             <p:panelGrid columns="2">
<p:outputLabel for="codebar" value="Seleccionar Formato" />
    
        <p:selectOneMenu id="codebar" value="#{barCodeBean.codebar}" style="width:135px">
            <f:selectItem itemLabel="Interleaved 2 of 5" itemValue="int2of5" />
            <f:selectItem itemLabel="Codabar" itemValue="codabar" />
            <f:selectItem itemLabel="Code39" itemValue="code39" />
            <f:selectItem itemLabel="Code128" itemValue="code128" />
            <f:selectItem itemLabel="EAN-8" itemValue="ean8" />
            <f:selectItem itemLabel="EAN-13" itemValue="ean13" />
            <f:selectItem itemLabel="UPC-A (PNG)" itemValue="upca" />
           <f:selectItem itemLabel="PDF417" itemValue="pdf417" /> 
           <f:selectItem itemLabel="DataMatrix" itemValue="datamatrix" />
           <f:selectItem itemLabel="Postnet" itemValue="postnet" />
           <f:selectItem itemLabel="QR" itemValue="qr" />
           
            .
            
        </p:selectOneMenu>
<p:outputLabel for="code" value="Agregar código" />
<p:inputText id="code" value="#{barCodeBean.code}" >
       </p:inputText>



<p:commandButton value="Generar formato" update="display" oncomplete="PF('dlg').show()" icon="pi pi-check" />
</p:panelGrid>
</p:panel>
 <p:panel id="upca" header="UPC-A (PNG)" >
             <p:panelGrid columns="2">
<p:outputLabel for="codeUpca" value="Escribir código" />
    
        
<p:inputText id="codeUpca" value="#{barCodeBean.codeUpca}" >
       </p:inputText>



<p:commandButton value="Generar formato" update="display2" oncomplete="PF('dlg2').show()" icon="pi pi-check" />
</p:panelGrid>
</p:panel>
<p:panel id="upce" header="UPC-E (Vertical)" >
             <p:panelGrid columns="2">
<p:outputLabel for="codeUpce" value="Escribir código" />
    
        
<p:inputText id="codeUpce" value="#{barCodeBean.codeUpce}" >
       </p:inputText>



<p:commandButton value="Generar formato" update="display3" oncomplete="PF('dlg3').show()" icon="pi pi-check" />
</p:panelGrid>
</p:panel>
 </p:dashboard>
<p:dialog header="Código de Barras" modal="true" showEffect="bounce" widgetVar="dlg" resizable="false">
        <p:panelGrid columns="2" id="display" columnClasses="label,value">
            <p:graphicImage>
                <p:barcode id="imagen" value="#{barCodeBean.code}" type="#{barCodeBean.codebar}" 
                 />
            </p:graphicImage>
           
            <p:commandButton value="Imprimir Código" type="button" icon="pi pi-print" style="display:block;margin-bottom: 20px">
    <p:printer target="imagen" />
</p:commandButton>  
        </p:panelGrid>
    </p:dialog>
    <p:dialog header="Código de Barras" modal="true" showEffect="bounce" widgetVar="dlg2" resizable="false">
        <p:panelGrid columns="2" id="display2" columnClasses="label,value">
            <p:graphicImage>
                <p:barcode id="imagen2" value="#{barCodeBean.codeUpca}" type="upca" 
             format="png"    />
            </p:graphicImage>
           
            <p:commandButton value="Imprimir Código" type="button" icon="pi pi-print" style="display:block;margin-bottom: 20px">
    <p:printer target="imagen2" />
</p:commandButton>  
        </p:panelGrid>
    </p:dialog>
     <p:dialog header="Código de Barras" modal="true" showEffect="bounce" widgetVar="dlg3" resizable="false">
        <p:panelGrid columns="2" id="display3" columnClasses="label,value">
            <p:graphicImage>
                <p:barcode id="imagen3" value="#{barCodeBean.codeUpce}" type="upce" 
             orientation="90"   />
            </p:graphicImage>
           
            <p:commandButton value="Imprimir Código" type="button" icon="pi pi-print" style="display:block;margin-bottom: 20px">
    <p:printer target="imagen3" />
</p:commandButton>  
        </p:panelGrid>
    </p:dialog>

    
    
    </h:form>
    
     </h:body>
</html>        
         
   
La siguiente pantalla o vista que vamos a genrar la vamos a nombrar ejemplos.xhtmlEn esta pantalla mostramos los ejemplos que tiene primefaces.
 
  <html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:p="http://primefaces.org/ui">
     
    <h:head>
    <title>GenBarCode</title>
    </h:head>
 
    <h:body>
    
    <style type="text/css">
    body .ui-panelgrid .ui-panelgrid-cell:last-child {
        background-color: #ffffff;
    }
</style>
 
  <h:form>
  
 <p:fieldset legend="GenBarCode" style="margin-bottom:20px">
        <h:panelGrid columns="1" cellpadding="5">
            
            <h:outputText
                value="Ejemplos que soporta primefaces." />
        </h:panelGrid>
    </p:fieldset>

<style type="text/css">
    body .ui-panelgrid .ui-panelgrid-cell:last-child {
        background-color: #ffffff;
    }
</style>
 
 
<p:panelGrid columns="2">
    <h:outputText value="Interleaved 2 of 5" />
    <p:barcode value="0123456789" type="int2of5" />
     
    <h:outputText value="Codabar" />
    <p:barcode value="0123456789" type="codabar"/>
     
    <h:outputText value="Code39" />
    <p:barcode value="0123456789" type="code39" />
     
    <h:outputText value="Code128" />
    <p:barcode value="0123456789" type="code128"/>
     
    <h:outputText value="EAN-8" />
    <p:barcode value="20123451" type="ean8"/>
     
    <h:outputText value="EAN-13" />
    <p:barcode value="0123456789012" type="ean13"/>
     
    <h:outputText value="UPC-A (PNG)" />
    <p:barcode value="01234567895" type="upca" format="png"/>
     
    <h:outputText value="UPC-E (Vertical)" />
    <p:barcode value="01234133" type="upce" orientation="90"/>
     
    <h:outputText value="PDF417" />
    <p:barcode value="0123456789" type="pdf417"/>
     
    <h:outputText value="DataMatrix" />
    <p:barcode value="0123456789" type="datamatrix"/>
     
    <h:outputText value="Postnet" />
    <p:barcode value="0123456789" type="postnet"/>
 
    <h:outputText value="QR" />
    <p:barcode value="0123456789" type="qr"/>
</p:panelGrid>

    
    
    </h:form>
    
     </h:body>
</html>
  
  
  

Corremos la aplicación

genbarcode
Nos vamos al dashboard que dice seleccionar formato y selecionamos un formato Code128 y escribmos 7894561230 luego presionamos Generar Formato
genbarcode
Esto es lo que nos genera:
genbarcode
Seleccionamos Imprimir Código
genbarcode
El resultado es el siguiente:
genbarcode
Si tienes scanner puedes probar.
Ahora generamos un codigo UPC-A (PNG) con 71864400094
y presionamos Generar Formato
genbarcode
El resultado que arroja es este:
genbarcode
Puedes ir probando los demás formatos.

Conclusión

Como se puede observar primefaces es una poderosa herramienta que te puede ayudar a generar códigos de barras para tus productos de acuerdo a las necesidades de tu sistema.

Descarga

Referencias

https://www.primefaces.org/

Ejemplo