xpages中条码扫描生成
Bar code scan and generate in xpages
我需要在 xpages 应用程序中使用条形码,以生成条形码并读取它。有谁知道我可以在应用程序上使用的任何库?有人在 xpages 应用程序中使用过这些功能吗?我如何找出条形码图案?
我在 XPages 应用程序中使用 Barcode4J 生成条码:http://barcode4j.sourceforge.net/。
我正在使用 ZXing 创建和读取不同类型的条形码。
对于 Java 6,有一个旧版本可用:Solvoj ZXing
编辑:
- 导入http://central.maven.org/maven2/com/solvoj/zxing-java6/core-java6/3.2.0/core-java6-3.2.0.jar
- 导入http://central.maven.org/maven2/com/solvoj/zxing-java6/javase-java6/3.2.0/javase-java6-3.2.0.jar
- 创建托管 bean
- 将 bean 添加到您的 XPage
托管 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>
我需要在 xpages 应用程序中使用条形码,以生成条形码并读取它。有谁知道我可以在应用程序上使用的任何库?有人在 xpages 应用程序中使用过这些功能吗?我如何找出条形码图案?
我在 XPages 应用程序中使用 Barcode4J 生成条码:http://barcode4j.sourceforge.net/。
我正在使用 ZXing 创建和读取不同类型的条形码。 对于 Java 6,有一个旧版本可用:Solvoj ZXing
编辑:
- 导入http://central.maven.org/maven2/com/solvoj/zxing-java6/core-java6/3.2.0/core-java6-3.2.0.jar
- 导入http://central.maven.org/maven2/com/solvoj/zxing-java6/javase-java6/3.2.0/javase-java6-3.2.0.jar
- 创建托管 bean
- 将 bean 添加到您的 XPage
托管 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>