java pdf barcode



package com.laotou99;

import java.io.FileOutputStream;

import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;

//import com.lowagie.text.*;
//import com.lowagie.text.pdf.*;

public class MainTest1 {

	public static void main(String[] args) throws Exception
	{
		// TODO Auto-generated method stub
		Document document = new Document(PageSize.A4,0,0,0,0);
		PdfWriter writer=null;
		try{ 

		//支持中文
		BaseFont bfChinese = BaseFont.createFont(BaseFont.HELVETICA,BaseFont.WINANSI,BaseFont.NOT_EMBEDDED);
		//BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",false);
		//BaseFont bfChinese = BaseFont.createFont("STFangsong","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);

		//设置字体
		Font fontsize4 = new Font(bfChinese,4,Font.NORMAL);
		Font fontsize5 = new Font(bfChinese,5,Font.BOLD);
		Font fontsize6 = new Font(bfChinese,6,Font.BOLD);
		Font fontsize10 = new Font(bfChinese,10,Font.BOLD);
		Font fontsize8 = new Font(bfChinese,8,Font.BOLD);

		writer = PdfWriter.getInstance(document, new FileOutputStream("test1.pdf"));

		document.open();

		//主表格
		PdfPTable mainTable = new PdfPTable(2);
		mainTable.setTotalWidth(320);
		mainTable.setLockedWidth(true);

		//默认无边框
		mainTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER); 



		//表格靠左对齐
		mainTable.setHorizontalAlignment(Element.ALIGN_LEFT);

		//****************左表格begin*********************S
		PdfPTable leftTable = new PdfPTable(1);

		leftTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

		leftTable.setHorizontalAlignment(Element.ALIGN_LEFT);


		//==================左表格上部分 begin=================

		PdfPTable topTable = new PdfPTable(2);
		topTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

		topTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

		topTable.setHorizontalAlignment(Element.ALIGN_LEFT);

		//设置表格宽度
		topTable.setTotalWidth(130);

		//锁定表格宽度
		topTable.setLockedWidth(true);

		topTable.addCell(new Paragraph("Return Mail Address : \nMAIL RETURNS PO BOX\n694 HAYES UB3 9PB\n\nUNITED KINGDOM",fontsize4));

		//===========左上角字符end=================


		//===============image begin===============

		//Image img = Image.getInstance("logo.gif");
		Image img = Image.getInstance("1231.jpg");


		//自动调整图片适应单元格
		topTable.addCell(new PdfPCell(img,true));

		//===============image end===============

		leftTable.addCell(topTable);
		//==================左表格上部分end=================



		//===========中间表格begin============
		PdfPTable amongTable = new PdfPTable(1);
		amongTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

		amongTable.addCell(new Paragraph("Airmail",fontsize8));
		amongTable.addCell(new Paragraph("Attn:Reinhard Scheffler            DE",fontsize10));
		amongTable.addCell(new Paragraph("Adds:Hoiminger Str.4",fontsize8));
		amongTable.addCell(new Paragraph("Havetoft",fontsize8));
		amongTable.addCell(new Paragraph("24873",fontsize8));
		amongTable.addCell(new Paragraph("GERMANY"));

		//将中间部分添加到左表格中
		leftTable.addCell(amongTable);

		//==========中间部分end ============



		//===== 下部分begin=================

		//下部分的表格
		PdfPTable underTable = new PdfPTable(2);
		underTable.getDefaultCell().setBorder(PdfPCell.NO_BORDER);

		//=========添加条形码begin===================
		PdfContentByte cd = writer.getDirectContent();

		Barcode128 code128 = new Barcode128();

		code128.setCode("SHA201204A7073");

		Image image128 = code128.createImageWithBarcode(cd, null, null);

		//新建列
		PdfPCell barcodeCell = new PdfPCell(image128);
		barcodeCell.setColspan(2); //垮2列
		barcodeCell.setHorizontalAlignment(Element.ALIGN_CENTER);
		barcodeCell.setBorder(PdfPCell.NO_BORDER);

		underTable.addCell(barcodeCell);
		//=========添加条形码end===================

		underTable.addCell(new Paragraph("LYTPY",fontsize4));
		underTable.addCell(new Paragraph("DC065653]  RefNo:SHA201204A7073",fontsize4));
		underTable.addCell(new Paragraph("CS:S0283  ",fontsize4));

		PdfPCell dateCell = new PdfPCell(new Paragraph("07/19 17:34:26",fontsize4));
		dateCell.setHorizontalAlignment(Element.ALIGN_RIGHT);
		dateCell.setBorder(PdfPCell.NO_BORDER);

		underTable.addCell(dateCell);

		//将下部分添加到左表格
		leftTable.addCell(underTable);

		//=====下部分end====================

		//****************左表格end****************



		//****************右表格begin****************
		PdfPTable rightTale =new PdfPTable(3);

		rightTale.getDefaultCell().setBorder(PdfPCell.NO_BORDER); 

		rightTale.setHorizontalAlignment(Element.ALIGN_LEFT);


		PdfPCell cell1 = new PdfPCell(new Paragraph("配货单  (贴到包装外,邮政必扣件)",fontsize8));
		cell1.setColspan(3);
		cell1.setHorizontalAlignment(Element.ALIGN_CENTER);
		cell1.setBorder(PdfPCell.NO_BORDER);

		PdfPCell cell2 = new PdfPCell(new Paragraph("4PX联邮通平邮",fontsize5));
		cell2.setColspan(3);
		cell2.setHorizontalAlignment(Element.ALIGN_CENTER);
		cell2.setBorder(PdfPCell.NO_BORDER);

		PdfPCell cell3= new PdfPCell(image128);
		cell3.setColspan(3);
		cell3.setHorizontalAlignment(Element.ALIGN_CENTER);
		cell3.setBorder(PdfPCell.NO_BORDER);



		rightTale.addCell(cell1);
		rightTale.addCell(cell2);
		rightTale.addCell(cell3);

		//============配货信息begin=========================
		rightTale.addCell(new Paragraph("序号",fontsize6));
		rightTale.addCell(new Paragraph("配货信息",fontsize6));
		rightTale.addCell(new Paragraph("数量",fontsize6));


		rightTale.addCell(new Paragraph("1",fontsize6));
		rightTale.addCell(new Paragraph("Computer Parts",fontsize6));
		rightTale.addCell(new Paragraph("1",fontsize6));

		//============配货信息end=========================


		//****************右表格end****************

		//组装表格
		mainTable.addCell(leftTable);
		mainTable.addCell(rightTale);

		//将表格写入PDF中

		document.add(mainTable);
		System.out.println("SUCCESS");

		}catch (Exception e) {
		e.printStackTrace();
		} 
		document.close();


	}

}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值