生成barcode的代码主要都是源于iText官网上提供的样例代码,不过使用中文标签的时候就会出现中文部分为空白的情况。
结合其他在iText中使用中文的情况,首先需要下载itext-asian.jar文件,然后加入到项目类路径。
其他部分详见代码
/**
*
* @author Chen Yi <njchenyi@gmail.com>
*/
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.Barcode;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.Barcode39;
import com.itextpdf.text.pdf.BarcodeCodabar;
import com.itextpdf.text.pdf.BarcodeDatamatrix;
import com.itextpdf.text.pdf.BarcodeEAN;
import com.itextpdf.text.pdf.BarcodeEANSUPP;
import com.itextpdf.text.pdf.BarcodeInter25;
import com.itextpdf.text.pdf.BarcodePDF417;
import com.itextpdf.text.pdf.BarcodePostnet;
import com.itextpdf.text.pdf.BarcodeQRCode;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfWriter;
public class Barcodes {
/** The resulting PDF. */
private static final String RESULT = "barcodes.pdf";
/**
* Generates a PDF file with different types of barcodes.
*
* @param args
* no arguments needed here
* @throws DocumentException
* @throws IOException
*/
public static void main(String[] args) throws IOException,
DocumentException {
new Barcodes().createPdf(RESULT);
}
/**
* Creates a PDF document.
* @param filename the path to the new PDF document
* @throws DocumentException
* @throws IOException
*/
public void createPdf(String filename) throws IOException, DocumentException {
BaseFont bf = null;
Font fontChinese = null;
try {
//使用iTextAsian.jar中的字体
bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2