2010-11-09 68 views
0

我试图编写一个场景,其中有一个例程接受输入作为要编码的数据和其他参数,如条码高度和宽度。例程然后编码条形码并将数据转换为条形码编码形式并将其作为字符串返回。Java条码查询

我已经尝试了几个外部库,并发现它们只返回一个图像(PNG,GIF),但我看着得到的结果十六进制格式的条形码图像的数据,我喂给路由。

另外,如果结果可以通过相对便宜的操作和完成相同的过程来实现,这将是非常好的,而且不会有问题。

任何人都知道任何外部库的任何指针如何可以实现?

+0

你想要什么样的字符串输出?如果你正在进行高度和宽度输入,返回任何*其他*比某种形象的图像是否合理? – 2010-11-09 15:40:18

+0

Im期望的字符串输出是生成的条形码图像的十六进制等值。 – Xcoder 2010-11-09 15:44:29

+0

“图像的十六进制等价物”使用哪种图像格式/编码? – Grodriguez 2010-11-09 18:33:52

回答

0

让我们定义为条码生成3个步骤:

  1. 适合在字符串中的所有数据。 (即对每个项目或使用分隔符使用固定宽度)。
  2. 将字符串转换为条形码字符集。
  3. 使用条形码simbology输出条形码图像。

如果我不能正常工作,您需要第2步的结果。通常这并不难,但首先您需要定义您使用的是哪种条形码格式。

0

最好的办法是将每个条形码字符转换为以base64表示的PNG。那么它只是坚持符号学的规则并将“图像”串在一起。这里有一个例子:

<img alt="104,{Start B}" title="104,{Start B}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/AC3gAT0BDuLeG4IAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 51,A:{S},B:{S}" title=" 51,A:{S},B:{S}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/ACLgAScBA3yI80wAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 65,A:{SOH},B:{a}" title=" 65,A:{SOH},B:{a}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/AGngAbUBSuiAnEkAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 77,A:{CR},B:{m}" title=" 77,A:{CR},B:{m}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/AAigALMAqe/ygasAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 80,A:{DLE},B:{p}" title=" 80,A:{DLE},B:{p}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/AFhgARMAuXYaS+YAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 76,A:{FF},B:{l}" title=" 76,A:{FF},B:{l}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/ADXgAU0BFkrGa3IAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 69,A:{ENQ},B:{e}" title=" 69,A:{ENQ},B:{e}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/AE3gAX0BLqHeudAAAAAASUVORK5CYII=" width="10" height="30"><img alt=" 85,A:{NAK},B:{u}" title=" 85,A:{NAK},B:{u}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAABAQMAAAAy+cYDAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/AGGgAWUBAqmuuv8AAAAASUVORK5CYII=" width="10" height="30"><img alt="106,{Stop}" title="106,{Stop}" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAABAQMAAAA/57ZEAAAABlBMVEUAAAD///+l2Z/dAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADklEQVQIHQEDAPz/ADigARMA2dpJzT8AAAAASUVORK5CYII=" width="10" height="30">

此图像流的显示128条码用于在浏览器中的“样本”字样。如果您需要一个真正的十六进制字符串,您可以采取PNG图像文件并将其转换。我想我不确定你的意思是“馈送到路由”。