如何在GWT中集成ZXing(斑马线)?

时间:2013-09-24 12:44:08

标签: gwt zxing gwt2 gxt

我想在GWT应用程序中使用Zxing生成条形码。

我已经使用QRCodeWriter实现了代码。它工作正常。如果我将它作为一个简单的java程序运行。后来我在GWT应用程序中集成了相同的内容。在编译时我收到错误“没有源代码可用于com.google.zxing.oned.com.google.zxing.qrcode.QRCodeWriter类型;您是否忘记继承所需的模块”< / p> Zxing core-2.2.jar 中存在

QRCodeWriter ,但我找不到任何 .gwt.xml core-2.2.jar

帮助我摆脱这个。

或者其他任何适合在GWT应用程序中生成条形码的工具/库

3 个答案:

答案 0 :(得分:0)

如果您的Zxing客户端没有模块,我觉得它不起作用!你想要的类可能是服务器代码。

答案 1 :(得分:0)

GWT客户端代码被交叉编译为Javascript。 Zxing包是纯Java,除非它们明确支持GWT(它们为您提供了可以继承的模块),否则不能在客户端使用。

您可以做的是创建一个在服务器端生成条形码的servlet(服务器端代码不会被交叉编译)并将响应作为图像发送。

如果Zxing只使用GWT allows on the client side类,您可以在项目中创建一个包,在其中放置Zxing源代码,并在<source path='...' />中添加GWT.xml标记以使其可用于客户方。但我不知道这会起什么作用,我不知道他们的许可协议是否允许这样做。

答案 2 :(得分:0)

Zxing不能在客户端gwt中使用,但你可以使用javascript libs。 其中一个是http://barcode-coder.com/en/barcode-jquery-plugin-201.html

要使用此lib,您需要执行以下步骤:

在你的xxx.nocache.js之前包含这个js文件

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>    
<script type="text/javascript" src="jquery-barcode.js"></script>  

并使用这段代码生成条形码

SimplePanel simplePanel = new SimplePanel();
RootPanel.get().add(simplePanel);
createBarcode(simplePanel.getElement(), "1234567890128", "ean13");

...

private native void createBarcode(Element element, String data, String type) /*-{
    $wnd.$(element).barcode(data, type);
}-*/;