我想在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应用程序中生成条形码的工具/库?
答案 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);
}-*/;