只是想贡献这个古老的问题。我得到这个工作通过添加下列行BuildConfig.groovy
:
在plugins
部分:
plugins {
// other plugins here
// ...
compile ":barcode4j:0.3"
compile ":rendering:1.0.0"
}
在dependencies
部分:
dependencies {
// other dependencies here
// ...
compile 'avalon-framework:avalon-framework:4.1.5'
}
然后我说的控制器基于代码的例子,我在网上找到。我特别需要一个DataMatrix生成器,但添加其他应该很容易,只需向控制器添加方法即可。很抱歉的品质不好的代码(我是一个Groovy新手):
package myproject
import org.krysalis.barcode4j.impl.datamatrix.DataMatrix
import java.awt.Dimension
class BarcodeController {
// a valid PNG image, base64 encoded
static invalidBarcodeImgBase64 = """iVBORw0KGgoAA...=="""
// Needs index.gsp for testing
def index() {
['uuid': UUID.randomUUID(), 'fecha': new Date()]
}
def dataMatrix(String value) {
if ((null == value) || (value.length() < 1) || (value.length() > 2000)) {
def img = invalidBarcodeImgBase64.decodeBase64()
response.setHeader('Content-length', new Integer(img.length).toString())
response.contentType = 'image/png'
response.outputStream << img
response.outputStream.flush()
} else {
def generator = new DataMatrix()
generator.dataMatrixBean.setMinSize(new Dimension(16, 16))
renderBarcodePng(generator, value, [antiAlias: false])
}
}
def datamatrix(String value) {
dataMatrix(value)
}
}
最后这里的index.gsp
在测试条形码观点:
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
<title>DataMatrix</title>
</head>
<body>
<g:img dir="barcode" file="dataMatrix?value=${uuid}"/>
<br />
<br />
<g:img dir="barcode" file="dataMatrix?value=${fecha}"/>
<br />
<br />
<g:img dir="barcode" file="dataMatrix?value=Nothing to see here"/>
</body>
</html>
不能使用Base64编码也? – 2011-01-20 21:06:08
Ach,没关系,只注意到IE不支持它? – Igor
我对grails并不熟悉,但是在PHP中这样做的方法是将src属性设置为脚本。所以,''并让该PHP脚本输出原始图像数据。你能做那样的事吗?不要忘记适当地设置您的内容类型标题。 – Brad