java打印条形码Code128C
生成编码类型为Code128C的条形码的javaCODE:
package test;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List; import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder; public class Code128C {
String[][] code128 = { { " ", " ", "00", "212222", "11011001100" },
{ "!", "!", "01", "222122", "11001101100" },
{ "\"", "\"", "02", "222221", "11001100110" },
{ "#", "#", "03", "121223", "10010011000" },
{ "$", "$", "04", "121322", "10010001100" },
{ "%", "%", "05", "131222", "10001001100" },
{ "&", "&", "06", "122213", "10011001000" },
{ "'", "'", "07", "122312", "10011000100", },
{ "(", "(", "08", "132212", "10001100100" },
{ ")", ")", "09", "221213", "11001001000" },
{ "*", "*", "10", "221312", "11001000100" },
{ "+", "+", "11", "231212", "11000100100" },
{ ",", ",", "12", "112232", "10110011100" },
{ "-", "-", "13", "122132", "10011011100" },
{ ".", ".", "14", "122231", "10011001110" },
{ "/", "/", "15", "113222", "10111001100" },
{ "0", "0", "16", "123122", "10011101100" },
{ "1", "1", "17", "123221", "10011100110" },
{ "2", "2", "18", "223211", "11001110010", },
{ "3", "3", "19", "221132", "11001011100" },
{ "4", "4", "20", "221231", "11001001110", },
{ "5", "5", "21", "213212", "11011100100" },
{ "6", "6", "22", "223112", "11001110100" },
{ "7", "7", "23", "312131", "11101101110" },
{ "8", "8", "24", "311222", "11101001100" },
{ "9", "9", "25", "321122", "11100101100" },
{ ":", ":", "26", "321221", "11100100110" },
{ ";", ";", "27", "312212", "11101100100" },
{ "<", "<", "28", "322112", "11100110100" },
{ "=", "=", "29", "322211", "11100110010" },
{ ">", ">", "30", "212123", "11011011000" },
{ "?", "?", "31", "212321", "11011000110" },
{ "@", "@", "32", "232121", "11000110110" },
{ "A", "A", "33", "111323", "10100011000" },
{ "B", "B", "34", "131123", "10001011000" },
{ "C", "C", "35", "131321", "10001000110" },
{ "D", "D", "36", "112313", "10110001000" },
{ "E", "E", "37", "132113", "10001101000" },
{ "F", "F", "38", "132311", "10001100010" },
{ "G", "G", "39", "211313", "11010001000" },
{ "H", "H", "40", "231113", "11000101000" },
{ "I", "I", "41", "231311", "11000100010" },
{ "J", "J", "42", "112133", "10110111000" },
{ "K", "K", "43", "112331", "10110001110" },
{ "L", "L", "44", "132131", "10001101110" },
{ "M", "M", "45", "113123", "10111011000" },
{ "N", "N", "46", "113321", "10111000110" },
{ "O", "O", "47", "133121", "10001110110" },
{ "P", "P", "48", "313121", "11101110110" },
{ "Q", "Q", "49", "211331", "11010001110" },
{ "R", "R", "50", "231131", "11000101110" },
{ "S", "S", "51", "213113", "11011101000" },
{ "T", "T", "52", "213311", "11011100010" },
{ "U", "U", "53", "213131", "11011101110" },
{ "V", "V", "54", "311123", "11101011000" },
{ "W", "W", "55", "311321", "11101000110" },
{ "X", "X", "56", "331121", "11100010110" },
{ "Y", "Y", "57", "312113", "11101101000" },
{ "Z", "Z", "58", "312311", "11101100010" },
{ "[", "[", "59", "332111", "11100011010" },
{ "\\", "\\", "60", "314111", "11101111010" },
{ "]", "]", "61", "221411", "11001000010" },
{ "^", "^", "62", "431111", "11110001010" },
{ "_", "_", "63", "111224", "10100110000" },
{ "NUL", "`", "64", "111422", "10100001100" },
{ "SOH", "a", "65", "121124", "10010110000" },
{ "STX", "b", "66", "121421", "10010000110" },
{ "ETX", "c", "67", "141122", "10000101100" },
{ "EOT", "d", "68", "141221", "10000100110" },
{ "ENQ", "e", "69", "112214", "10110010000" },
{ "ACK", "f", "70", "112412", "10110000100" },
{ "BEL", "g", "71", "122114", "10011010000" },
{ "BS", "h", "72", "122411", "10011000010" },
{ "HT", "i", "73", "142112", "10000110100" },
{ "LF", "j", "74", "142211", "10000110010" },
{ "VT", "k", "75", "241211", "11000010010" },
{ "FF", "I", "76", "221114", "11001010000" },
{ "CR", "m", "77", "413111", "11110111010" },
{ "SO", "n", "78", "241112", "11000010100" },
{ "SI", "o", "79", "134111", "10001111010" },
{ "DLE", "p", "80", "111242", "10100111100" },
{ "DC1", "q", "81", "121142", "10010111100" },
{ "DC2", "r", "82", "121241", "10010011110" },
{ "DC3", "s", "83", "114212", "10111100100" },
{ "DC4", "t", "84", "124112", "10011110100" },
{ "NAK", "u", "85", "124211", "10011110010" },
{ "SYN", "v", "86", "411212", "11110100100" },
{ "ETB", "w", "87", "421112", "11110010100" },
{ "CAN", "x", "88", "421211", "11110010010" },
{ "EM", "y", "89", "212141", "11011011110" },
{ "SUB", "z", "90", "214121", "11011110110" },
{ "ESC", "{", "91", "412121", "11110110110" },
{ "FS", "|", "92", "111143", "10101111000" },
{ "GS", "},", "93", "111341", "10100011110" },
{ "RS", "~", "94", "131141", "10001011110" },
{ "US", "DEL", "95", "114113", "10111101000" },
{ "FNC3", "FNC3", "96", "114311", "10111100010" },
{ "FNC2", "FNC2", "97", "411113", "11110101000" },
{ "SHIFT", "SHIFT", "98", "411311", "11110100010" },
{ "CODEC", "CODEC", "99", "113141", "10111011110" },
{ "CODEB", "FNC4", "CODEB", "114131", "10111101110" },
{ "FNC4", "CODEA", "CODEA", "311141", "11101011110" },
{ "FNC1", "FNC1", "FNC1", "411131", "11110101110" },
{ "StartA", "StartA", "StartA", "211412", "11010000100" },
{ "StartB", "StartB", "StartB", "211214", "11010010000" },
{ "StartC", "StartC", "StartC", "211232", "11010011100" },
{ "Stop", "Stop", "Stop", "2331112", "1100011101011" }, }; /**
*生产Code128的条形码的code
*
* @param barCode
* @param encode
* @return
*/
public String getCode(String barCode, String encode)
{
String _Text = "";// 返回的参数
List<Integer> _TextNumb = new ArrayList<Integer>();// 2截取位的组合
int _Examine = 105; // 首位
// 编码不能是奇数
if (!((barCode.length() & 1) == 0))
return "";
while (barCode.length() != 0)
{
int _Temp = 0;
try
{
// Code128 编码必须为数字
_Temp = Integer.valueOf(barCode.substring(0, 2));
}
catch (Exception e)
{
e.printStackTrace();
return "";
}
// 获得条纹
_Text += getValue(barCode, barCode.substring(0, 2), _Temp);
_TextNumb.add(_Temp);
// 条码截取2个就需要去掉用过的前二位
barCode = barCode.substring(2);
}
if (_TextNumb.size() == 0)
{
return "";
}
_Text = getValue(_Examine) + _Text; // 获取开始位
for (int i = 0; i != _TextNumb.size(); i++)
{
_Examine += _TextNumb.get(i) * (i + 1);
}
_Examine = _Examine % 103; // 获得校验位
_Text += getValue(_Examine); // 获取校验位
_Text += "1100011101011"; // 结束位
return _Text;
} /**
* 根据编号获得条纹
*
* @param encode
* @param p_Value
* @param p_SetID
* @return
*/
private String getValue(String encode, String p_Value, int p_SetID)
{
return code128[p_SetID][4];
} // / <summary>
// / 根据编号获得条纹
// / </summary>
// / <param name="p_CodeId"></param>
// / <returns></returns>
private String getValue(int p_CodeId)
{
return code128[p_CodeId][4];
} private int m_nImageHeight = 40; // 条码的高度像素数 public static void main(String[] args) throws Exception
{ codeTest2 c = new codeTest2();
String barCode = c.getCode("118842807789", "");
c.kiCode128C(barCode, 50, "d:/code128C.jpg"); } // / <summary>
// / 生成条码
// / </summary>
// / <param name="BarString">条码模式字符串</param>
// / <param name="Height">生成的条码高度</param>
// / <returns>条码图形</returns>
public void kiCode128C(String barString, int Height, String path)
{
try
{
File myPNG = new File(path);
OutputStream out = new FileOutputStream(myPNG);
if (null == barString || null == out || 0 == barString.length())
return;
int nImageWidth = 0;
char[] cs = barString.toCharArray();
for (int i = 0; i != cs.length; i++)
{
nImageWidth = cs.length;
} BufferedImage bi = new BufferedImage(nImageWidth, m_nImageHeight,
BufferedImage.TYPE_INT_RGB);
Graphics g = bi.getGraphics(); for (int i = 0; i < cs.length; i++)
{
if ("1".equals(cs[i] + ""))
{
g.setColor(Color.BLACK);
g.fillRect(i, 0, 1, m_nImageHeight);
}
else
{
g.setColor(Color.WHITE);
g.fillRect(i, 0, 1, m_nImageHeight);
}
}
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);
encoder.encode(bi);
}
catch (Exception e)
{
e.printStackTrace();
}
} }
java打印条形码Code128C的更多相关文章
- JAVA生成条形码
1.下载生成条形码所需要的jar包barcode4j.jar: 2.java生成条形码代码 import java.awt.image.BufferedImage;import java.io.Fil ...
- Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录)
Java 打印金字塔 or 打印带数字的金字塔 (Java 学习中的小记录) 作者:王可利(Star·星星) 效果图: 代码如下: class Star8 { public static void m ...
- 关于这两天研究Java打印pdf方法的记录
这两天在研究Java调用打印机打印PDF文件的方法,学到了不少东西,特别来记录一下. 关于Java打印网上最多的而且也是Java正统的打印方法就是使用PrintService,一套比較标准的打印代码例 ...
- java打印正金字塔,倒金字塔和“水影”金字塔
java打印正金字塔,倒金字塔和"水影"金字塔 --------原创文章,若要转载,请注明出处 小小少年 闲来无事,想起自己初学java的时候做的经典的无非就是打印出一些有意思 ...
- Java打印
Java打印 import java.awt.Color; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Gra ...
- Java 打印程序设计实例
3.1 打印文本 3.1.1 应用场景 假设我们需要打印一个窗体的某个文本编辑域(可能只有几行,也可能包含多页)的内容,并且每页最多打印 54 行,如何实现呢? 3.1.2 解决方法 基本思路如下:首 ...
- Java打印整数的二进制表示(代码与解析)
Java打印整数的二进制表示(代码与解析) int a=-99; for(int i=0;i<32;i++){ int t=(a & 0x80000000>>>i)&g ...
- Java打印金字塔问题
Java打印金字塔问题 public class 金字塔问题 { // //普通金字塔 // public static void main(String[] args) { // //先打印4层 / ...
- ReportMachine打印条形码的问题
ReportMachine打印条形码的问题 最近用RM报表来打印条形码,调试过程非常顺利,扫描枪识别也很正常,唯独斑马打印机的走纸不准确是个问题,正好客户不想用这种纸型,并定制了新纸型,心想等新纸型到 ...
随机推荐
- python乱码问题之爬虫篇
UnicodeDecodeError: 'gbk' codec can't decode byte 0xae in position 167: illegal multibyte sequence 使 ...
- unity3d uv动画
做个总结吧.算是. 之前做过一个项目,是一个关于太空大战的项目. 算是自己做的吧.大体环境是unity3d + win32,mac上不行.好像不支持这个,原因未知.希望知道的告诉我下. 以下具体说下整 ...
- Python学习笔记四:面向对象编程
一:定义类并创建实例 Python中定义类,通过class关键字,类名开头大写,参数列表为所继承的父类.如果没有需要明确继承的类,则继承object. 使用类来创建对象,只需 类名+() 形式即可,p ...
- cocos2d-js 免安装在线版 粒子编辑器 particle editor particle builder 兼容pex和plist
http://onebyonedesign.com/flash/particleeditor/ 这个原来是为flash starling设计的粒子系统编辑器,但实际上,还是能兼容cocos2d的. 只 ...
- 【PMP】资源平衡与资源平滑
资源平衡:为了在资源需求与资源供给之间取得平衡,根据资源制约因素对开始日期和完成日期进行调整的一种技术 资源平滑:对进度模型中的活动进行调整,从而使项目资源需求不超过预定的资源限制的一种技术. 案例说 ...
- codevs 1862 最长公共子序列(求最长公共子序列长度并统计最长公共子序列的个数)
题目描述 Description 字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X=“x0,x1,…,xm-1”,序列Y ...
- Window10激活
Windows10激活,通过kms激活. 01.安装对应版本的秘钥 专业版:W269N-WFGWX-YVC9B-4J6C9-T83GX 企业版:NPPR9-FWDCX-D2C8J-H872K-2YT4 ...
- JSONObject.parseObject(jsonStr);和JSONObject.fromObject(jsonStr);
虽然都是返回JSONObject,但是 JSONObject.parseObject(jsonStr);这个方法需要导入import com.alibaba.fastjson.JSONObject; ...
- Comparable 与 Comparator
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序 ...
- java struts2入门学习---国际化
一.国际化的概念 1.不同国家的人访问同一个网站,显示的语言不同. 2.对JSP页面进行国际化 属性(properties)文件命名规则:基名---语言--国家如, message_zh_CN.pro ...