条形码扫描并在xpages中生成

时间:2018-06-19 00:29:30

标签: javascript xpages barcode

我需要在xpages应用程序中使用条形码,以生成条形码并读取它。有谁知道我可以在应用程序上使用的任何库?有没有人在xpages应用程序中使用这些功能?我如何找到条形码图案?

2 个答案:

答案 0 :(得分:2)

我正在使用ZXing来创建和阅读不同类型的条形码。 对于Java 6,可以使用旧版本:Solvoj ZXing

修改

  1. 导入http://central.maven.org/maven2/com/solvoj/zxing-java6/core-java6/3.2.0/core-java6-3.2.0.jar
  2. 导入http://central.maven.org/maven2/com/solvoj/zxing-java6/javase-java6/3.2.0/javase-java6-3.2.0.jar
  3. 创建托管bean
  4. 将bean添加到XPage
  5. 托管Bean

    package ch.hasselba.xpages;
    
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    
    import javax.faces.context.FacesContext;
    
    import com.google.zxing.BarcodeFormat;
    import com.google.zxing.MultiFormatWriter;
    import com.google.zxing.WriterException;
    import com.google.zxing.client.j2se.MatrixToImageConfig;
    import com.google.zxing.client.j2se.MatrixToImageWriter;
    import com.google.zxing.common.BitMatrix;
    import com.ibm.xsp.webapp.XspHttpServletResponse;
    
    public class ZXingBean {
    
        public void generateDemoQRCode() {
            FacesContext fc = FacesContext.getCurrentInstance();
            XspHttpServletResponse  response = (XspHttpServletResponse) fc.getExternalContext().getResponse();
    
            try {
                response.setContentType("image/png");
                response.getOutputStream().write(generateQRCode("Hello World!", 200, 200 ));
            } catch (IOException e) {
                e.printStackTrace();
            } catch (WriterException e) {
                e.printStackTrace();
            }
    
            fc.responseComplete();
    
        }
        public byte[] generateQRCode(String text, int width, int height)
                throws WriterException, IOException {
    
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
    
            BitMatrix matrix = new MultiFormatWriter().encode(text,
                    BarcodeFormat.QR_CODE, width, height);
    
            MatrixToImageWriter.writeToStream(matrix, "png", baos,
                    new MatrixToImageConfig());
    
            return baos.toByteArray();
        }
    
    }
    

    <强>面-config.xml中

    <?xml version="1.0" encoding="UTF-8"?>
    <faces-config>
      <managed-bean>
        <managed-bean-name>zxingBean</managed-bean-name>
        <managed-bean-class>ch.hasselba.xpages.ZXingBean</managed-bean-class>
        <managed-bean-scope>session</managed-bean-scope>
      </managed-bean>
    </faces-config>
    

    <强> XAgent

    <xp:view
        xmlns:xp="http://www.ibm.com/xsp/core"
        rendered="false"
        viewState="nostate">
        <xp:this.beforeRenderResponse><![CDATA[#{javascript:zxingBean.generateDemoQRCode()}]]></xp:this.beforeRenderResponse>
    
    </xp:view>
    

答案 1 :(得分:0)

我在XPage应用程序中使用Barcode4J生成条形码:http://barcode4j.sourceforge.net/