最近要做一个功能
1、生成PDF417条形码。
2、识别PDF417条形码。
3、把条码插入到word文档的最有一页。
目前做好的只有第一点。
用到的一个jar包是 iText.jar
其实生成二维条码的代码很简单。下面贴上生成二维条码的代码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.font.FontRenderContext; import java.awt.font.TextAttribute; import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream;import javax.imageio.ImageIO;
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.pdf.BarcodePDF417;public class BarcodeDemo {
public static void main(String[] args) throws IOException, BadElementException { createPdf417(); } private static final String codeString = "GB0626-2005^GD000014001300000871^广东省**单位^通知^粤**函〔2013〕1**号^**单位^***标题^无^无^20131031^^打字室^20131031^^|"; public static void createPdf417()throws IOException{ BarcodePDF417 pdf = new BarcodePDF417(); pdf.setText(codeString.getBytes("GBK")); Image pdfImg = pdf.createAwtImage(Color.black, Color.white); BufferedImage img = new BufferedImage((int)pdfImg.getWidth(null), (int)pdfImg.getHeight(null), BufferedImage.TYPE_INT_RGB); Graphics g = img.getGraphics(); g.drawImage(pdfImg, 0, 0, Color.white, null); OutputStream os = new BufferedOutputStream(new FileOutputStream("d:/pdf417.bmp")); ImageIO.write(img, "PNG", os); }
}
在写这段代码的时候 主要出现的问题是,如果内容中存在中文的时候
必须使用pdf.setText(byte[])这个方法对BarcodePDF417进行初始化。
我之前用的是pdf.setText(String) ,直接把字符串丢进去,结果中文完全不能写进去。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于