Sophie

Sophie

distrib > Mandriva > 2007.0 > i586 > media > contrib-release > by-pkgid > 29e0da3ddcddab73ae8621fc62033227 > files > 214

itext-manual-1.4.5-1mdv2007.0.i586.rpm

/*
 * $Id: ExampleEAN128.java,v 1.3 2005/05/09 11:52:45 blowagie Exp $
 * $Name:  $
 *
 * This code is part of the 'iText Tutorial'.
 * You can find the complete tutorial at the following address:
 * http://itextdocs.lowagie.com/tutorial/
 *
 * This code is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * itext-questions@lists.sourceforge.net
 */
package com.lowagie.examples.objects.images.tiff;

import java.awt.Color;
import java.io.FileOutputStream;

import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Image;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.Barcode128;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter;
/**
 * Example Barcode EAN128.
 */
public class ExampleEAN128 {

	/**
	 * Example Barcode EAN128.
	 * @param args no arguments needed
	 */
    public static void main(String[] args) {
    	// step 1
    	Document document = new Document();
    	try {
    		// step 2
    		PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("ean128.pdf"));
    		// step 3
    		document.open();
    		// step 4
    		PdfContentByte cb = writer.getDirectContent();
            PdfPTable pageTot = new PdfPTable(1);
            pageTot.getDefaultCell().setPadding(0f);
            pageTot.getDefaultCell().setBorder(Rectangle.NO_BORDER);
            pageTot.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
            pageTot.setWidthPercentage(100f);
            //Data for the barcode : it is composed of 3 blocks whith AI 402, 90 and 421
            // The blocks whith the type 402 and 90 are of variable size so you must put a FNC1
            // to delimitate the block
            String code402 = "24132399420058289"+Barcode128.FNC1;
            String code90 = "3700000050"+Barcode128.FNC1;
            String code421 = "422356";
            String data = code402 + code90 + code421;
            
            PdfPTable cell = new PdfPTable(1);
            cell.getDefaultCell().setBorder(Rectangle.NO_BORDER);
            cell.getDefaultCell().setPadding(0f);
            
            PdfPCell info = new PdfPCell(new Phrase("Barcode EAN 128"));
            info.setBorder(Rectangle.NO_BORDER);
            pageTot.addCell(info);
            
            Barcode128 shipBarCode = new Barcode128();
            shipBarCode.setX(0.75f);
            shipBarCode.setN(1.5f);
            shipBarCode.setChecksumText(true);
            shipBarCode.setGenerateChecksum(true);
            shipBarCode.setSize(10f);
            shipBarCode.setTextAlignment(Element.ALIGN_CENTER);
            shipBarCode.setBaseline(10f);
            shipBarCode.setCode(data);
            shipBarCode.setBarHeight(50f);
            
            Image imgShipBarCode = shipBarCode.createImageWithBarcode(cb, Color.black, Color.blue);
            PdfPCell shipment = new PdfPCell(new Phrase(
            new Chunk(imgShipBarCode, 0, 0)));
            shipment.setFixedHeight(shipBarCode.getBarcodeSize().height() + 16f);
            shipment.setPaddingTop(5f);
            shipment.setPaddingBottom(10f);
            shipment.setBorder(Rectangle.BOX);
            shipment.setVerticalAlignment(Element.ALIGN_TOP);
            shipment.setHorizontalAlignment(Element.ALIGN_CENTER);
            cell.addCell(shipment);
            
            pageTot.addCell(cell);
            
            
            document.add(pageTot);
    	}
    	catch(Exception e) {
    		e.printStackTrace();
    	}
    	// step 5
    	document.close();
    }

}