0

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

我已经用 QRCodeWriter 实现了代码。它工作正常。如果我将它作为一个简单的 java 程序运行。后来我在我的 GWT 应用程序中集成了相同的功能。编译时出现错误“没有源代码可用于类型 com.google.zxing.oned.com.google.zxing.qrcode.QRCodeWriter;您是否忘记继承所需的模块

QRCodeWriter存在于Zxing , core-2.2.jar但我在core-2.2.jar中找不到任何.gwt.xml

所以帮助我摆脱这个。

或者还有其他适合在 GWT 应用程序中生成条形码的工具/库吗?

4

3 回答 3

0

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

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

在你的 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);
}-*/;
于 2013-09-25T13:27:44.203 回答
0

如果您的 Zxing 客户端没有模块,我认为它无法工作!您想要使用的类可能用于服务器端代码。

于 2013-09-24T17:39:12.677 回答
0

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

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

如果 Zxing 只使用GWT 允许在客户端使用的类,您可以在您的项目中制作一个包,将 Zxing 源代码放在那里,并<source path='...' />在您的标签中标记GWT.xml以使其在客户端可用。但我不知道这会在多大程度上起作用,我不知道他们的许可协议是否允许这样做。

于 2013-09-24T22:40:53.593 回答