Oracle EBS暂时还只支持一维码,所以如需要二维码的打印和扫描,需要自行开发。PL/SQL还没有成熟的二维码生成类库,但Java已有很多二维码生成和解码的第三方类库(比如,QRCode,ZXing...),这里以比较简单的QRCode为例演示怎么输出和解码二维码。一个QRCode的简单例子:

涉及到的主要类库:

  • 编码 lib:Qrcode_swetake.jar  (官网介绍 -- http://www.swetake.com/qr/index-e.html)
  • 解码 lib:qrcode.jar                 (官网介绍 -- http://sourceforge.jp/projects/qrcode/)

二维码图片的生成:

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;import javax.imageio.ImageIO;import com.swetake.util.Qrcode;/*** 二维码生成器*/
public class PTIANQRCodeEncoder {/*** 生成二维码(QRCode)图片* * @param content* @param imgPath*/public void encoderQRCode(String content, String imgPath) {try {Qrcode qrcodeHandler = new Qrcode();qrcodeHandler.setQrcodeErrorCorrect('M');qrcodeHandler.setQrcodeEncodeMode('B');qrcodeHandler.setQrcodeVersion(7);System.out.println(content);byte[] contentBytes = content.getBytes("gb2312");BufferedImage bufImg = new BufferedImage(140, 140,BufferedImage.TYPE_INT_RGB);Graphics2D gs = bufImg.createGraphics();gs.setBackground(Color.WHITE);gs.clearRect(0, 0, 140, 140);// 设定图像颜色 > BLACKgs.setColor(Color.BLACK);// 设置偏移量 不设置可能导致解析出错int pixoff = 2;// 输出内容 > 二维码if (contentBytes.length > 0 && contentBytes.length < 120) {boolean[][] codeOut = qrcodeHandler.calQrcode(contentBytes);for (int i = 0; i < codeOut.length; i++) {for (int j = 0; j < codeOut.length; j++) {if (codeOut[j][i]) {gs.fillRect(j * 3 + pixoff, i * 3 + pixoff, 3, 3);}}}} else {System.err.println("QRCode content bytes length = "+ contentBytes.length + " not in [ 0,120 ]. ");}gs.dispose();bufImg.flush();File imgFile = new File(imgPath);// 生成二维码QRCode图片ImageIO.write(bufImg, "png", imgFile);} catch (Exception e) {e.printStackTrace();}}/*** @param args*            the command line arguments*/public static void main(String[] args) {String imgPath = "D:/PTIAN_QRCode.png";String content = "PTIAN Oracle EBS Repository,你好,世界";PTIANQRCodeEncoder handler = new PTIANQRCodeEncoder();handler.encoderQRCode(content, imgPath);System.out.println("encoder QRcode success");}}

生成的图片:

解析二维码:

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;import jp.sourceforge.qrcode.QRCodeDecoder;
import jp.sourceforge.qrcode.data.QRCodeImage;
import jp.sourceforge.qrcode.exception.DecodingFailedException;public class PTIANQRCodeDecoderHandler {/*** 解码二维码* @param imgPath* @return String*/public String decoderQRCode(String imgPath) {// QRCode 二维码图片的文件File imageFile = new File(imgPath);BufferedImage bufImg = null;String decodedData = null;try {bufImg = ImageIO.read(imageFile);QRCodeDecoder decoder = new QRCodeDecoder();decodedData = new String(decoder.decode(new J2SEImage(bufImg)));// try {// System.out.println(new String(decodedData.getBytes("gb2312"),// "gb2312"));// } catch (Exception e) {// // TODO: handle exception// }} catch (IOException e) {System.out.println("Error: " + e.getMessage());e.printStackTrace();} catch (DecodingFailedException dfe) {System.out.println("Error: " + dfe.getMessage());dfe.printStackTrace();}return decodedData;}/*** @param args the command line arguments*/public static void main(String[] args) {PTIANQRCodeDecoderHandler handler = new PTIANQRCodeDecoderHandler();String imgPath = "d:/PTIAN_QRCode.png";String decoderContent = handler.decoderQRCode(imgPath);System.out.println("解析结果如下:");System.out.println(decoderContent);System.out.println("========decoder success!!!");}class J2SEImage implements QRCodeImage {BufferedImage bufImg;public J2SEImage(BufferedImage bufImg) {this.bufImg = bufImg;}public int getWidth() {return bufImg.getWidth();}public int getHeight() {return bufImg.getHeight();}public int getPixel(int x, int y) {return bufImg.getRGB(x, y);}}
}

Output:

解析结果如下:
PTIAN Oracle EBS Repository,你好,世界
========decoder success!!!

Oracle EBS中如何使用QRCode来打印二维码,ITPUB上已经有人通过JSP来调用QRCode做到了,最终可以在XML报表中打印,详见帖子:http://www.itpub.net/thread-1755791-1-1.html

未完...

Oracle EBS中打印二维码相关推荐

  1. vue项目中批量打印二维码

    前提:项目中要打印的二维码为后台返回,批量选择后,点击打印,先打开二维码预览界面,再执行打印. 以下代码中 codePicList为选中的二维码数组.重点css:page-break-after:al ...

  2. access 打印预览 代码_TSC TTP-244条码打印机如何批量打印二维码

    二维码的应用可以说是非常的普遍了,二维码在应用之前不但需要条码打印机批量打印二维码,还需要相关的二维码制作软件制作二维码.今天小编就教大家用TSC TTP-244条码打印机批量打印二维码. 1.打开二 ...

  3. Android 热敏打印机打印二维码(转载)

    一.打印机的型号 RP-POS80S或RP-POS80P或RP-POS80CS或RP-POS80CP打印机 高速热敏打印机 打印方式:直接热敏打印 打印密度:640点/行 打印纸宽:80mm 有效打印 ...

  4. Java连接打印机打印二维码

    首先导入依赖 implementation 'com.google.zxing:core:3.5.1' implementation 'com.google.zxing:javase:3.5.1' 1 ...

  5. Android在针式打印机上通过ESC/P指令打印二维码

    Android在针式打印机上通过ESC/P指令打印二维码 前言 正文 前言 最近有个需求就是在rk3399上通过usb口打印发票单,各大品牌的针式打印机几乎都没有Android平台的SDK,后查找相关 ...

  6. Deli条码打印机如何批量打印二维码

    如题,今天小编就和大家说说Deli条码打印机如何批量打印二维码,除了必须的Deli条码打印机外,还需要条码打印软件,用来生成二维码,话不多活,接下来我们就看先是如何实现的. 把Deli条码打印机和电脑 ...

  7. JS前端调用TSC打印二维码、条码

    公司让用js调用TSC打印二维码,本人已调试成功,希望大家有所帮助! ActiveX下载地址:ActiveX下载地址! 实现代码:JS前端调用TSC打印二维码实现代码 <HTML> < ...

  8. 对#Hello,2015征文#+Android 热敏打印机打印二维码(图片)博客的尝试

    原博客链接 #Hello,2015征文#+Android 热敏打印机打印二维码 昨天晚上说抽时间来写一篇关于Android 热敏打印机打印二维码和图片的文章,所幸在下班之前把它给写了,和大家分享吧.我 ...

  9. python在excel中插入二维码

    场景 需要在excel中的barcode列中插入二维码图片,方便运营人员打印和数据录入. 下面是python代码生成后的结果: 代码 代码实现分为两个步骤: 1.生成二维码svg图片: 2.将图片插入 ...

最新文章

  1. 海思涵科技WIFI认证服务器不在线,在海思平台外加一个usb wifi模块,mt7601 加载ok,配置网络ok,但不能ping通?...
  2. 对象是空的吗? [重复]
  3. 一个爬虫的demo,requests,beatuifulsoup使用的
  4. Easy Slider: 功能强大简单易用的jQuery滑动门插件
  5. pku 1573 Robot Motion 第一周训练——模拟
  6. celery无密码连接redis与带密码连接redis
  7. ipmitool 设置网关_IPMI 接口配置
  8. CPU高负载排查小技巧(2分钟速读版),细心的优化可能为公司节省一个亿!
  9. Java编程中“为了性能”尽量要做到的一些地方 [转]
  10. 微软被诉Windows字体侵权 微软版权意识翻车了
  11. spark RDD的理解
  12. Hadoop、Storm和Spark 三者的区别、比较
  13. java hql left join_求教hql的left join结合条件的写法
  14. VS2015 社区版本 打包程序 发布
  15. java判断一个数是不是素数_Java-判断一个数是不是素数
  16. 9个GVP国产Java开源项目!是真滴哇塞
  17. Python爬虫从入门到精通——爬虫实战:爬取猫眼电影排行Top100
  18. 山东微信红包派发量全国第8
  19. sap的清账是什么意思_sap F-30 什么时候会用到 过账并清帐是什么意思
  20. 电脑ps4,ps4怎么连接电脑

热门文章

  1. 2019CVPR有关对抗样本的论文总结(防御篇一)
  2. 51单片机入学第一课———点亮自己的LED灯珠
  3. 快速记忆数学知识的六个方法
  4. css 谷歌字体加载,使用谷歌网页字体无限制的添加字体到您的网站
  5. git 项目 保存至gitee中
  6. T-SQL 错误状态
  7. pool win10提示bad_win10系统电脑蓝屏提示bad pool header的解决方法
  8. 仿腾讯手机管家火箭发射案例
  9. 【C++】C++ begin()和end()
  10. Catia启动界面图片修改