嗨我正面临一个问题的一代条形码在Java中。我使用code128生成条形码。生成条形码长度的数据是20位数字(123456789),我可以生成条形码,条形码的宽度为宽度165,高度为58。但是我需要108个宽度和29个高度作为相同的20位数输入。Java条码生成
我已经使用下面的代码生成条形码,请帮助,如果任何人有解决问题的想法。
package com.tcs.tpos.business.dayactivities;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.onbarcode.barcode.Code128;
public class barTest {
public static void main(String[] args) throws Exception
{
String barip="1234567890";
File poFile = new File("c:/tmp/work/barcode"+barip+ ".png");
Code128 barcode=new Code128();
barcode.setData(barip);
System.out.println("The Barocde height is been refered here " +barcode.getX());
System.out.println("The Barcode width is been refered here " +barcode.getY());
System.out.println("The Barcode width is been refered here " +barcode.getBarcodeHeight());
barcode.setX(0.5f);
barcode.setY(15f);
barcode.setLeftMargin(0.1f);
barcode.setRightMargin(0.1f);
System.out.println("The Barcode width is been refered here " +barcode.getBarcodeHeight());
System.out.println("The Barcode width is been refered here " +barcode.getBarcodeWidth());
System.out.println("The Barcode width is been refered here " +barcode.getTopMargin());
System.out.println("The Barcode width is been refered here " +barcode.getBottomMargin());
System.out.println("The Barcode width is been refered here " +barcode.getLeftMargin());
System.out.println("The Barcode width is been refered here " +barcode.getRightMargin());
barcode.drawBarcode("c:/tmp/work/barcode"+barip+ ".png");
ImageIcon oimage=new ImageIcon("c:/tmp/work/barcode"+barip+ ".png");
BufferedImage inputImage=ImageIO.read(poFile);
BufferedImage genom=generateomImage(inputImage,113,25);
ImageIO.write(genom, "png", new File("c:/tmp/work/barcode"+barip+ ".png"));
}
public static BufferedImage generateomImage(BufferedImage ret,int width,int height)
{
int w = ret.getWidth(null);
int h = ret.getHeight(null);
Image scaledImage = ret.getScaledInstance((int)width, (int)height, Image.SCALE_SMOOTH);
BufferedImage result = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g = result.createGraphics();
g.drawImage(scaledImage, 0, 0, null);
g.dispose();
return result;
}
}
高度所以,如果你这样做发生了什么? –