package com.itext.pdf.barcode;
import java.io.FileOutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.Barcode128;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
public class Test {
public static void main(String[] args) throws Exception{
Document document = new Document(PageSize.A4,0,0,0,0);
PdfWriter writer=null;
try{
//支持中文
BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",false);
//设置字体
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("H:/Projece_demo/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("H:/Projece_demo/logo.gif");
//自动调整图片适应单元格
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();
}
}
初学Itext 生成PDF 表格,条形码(一维),图片
猜你喜欢
转载自lucifer-li6.iteye.com/blog/1637687
今日推荐
周排行