Package com.lowagie.examples.objects.chunk

Source Code of com.lowagie.examples.objects.chunk.Generic

/*
* $Id$
*
* 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.chunk;

import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.Chunk;
import com.lowagie.text.LwgDocument;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Paragraph;
import com.lowagie.text.LwgRectangle;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfPageEventHelper;
import com.lowagie.text.pdf.PdfWriter;

/**
* Demonstrates the use of the Generic PageEvent.
*
* @author blowagie
*/

public class Generic extends PdfPageEventHelper {
  /**
   * Draws an ellipse if the text was ellipse, a box if the text was box.
   *
   * @see com.lowagie.text.pdf.PdfPageEventHelper#onGenericTag(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, com.lowagie.text.LwgRectangle, java.lang.String)
   */
  public void onGenericTag(PdfWriter writer, LwgDocument document, LwgRectangle rect, String text) {
    if ("ellipse".equals(text)) {
      PdfContentByte cb = writer.getDirectContent();
      cb.setRGBColorStroke(0xFF, 0x00, 0x00);
      cb.ellipse(rect.getLeft(), rect.getBottom() - 5f, rect.getRight(), rect.getTop());
      cb.stroke();
      cb.resetRGBColorStroke();
    }
    else if ("box".equals(text)) {
      PdfContentByte cb = writer.getDirectContentUnder();
      rect.setGrayFill(0.5f);
      cb.rectangle(rect);
    }
    }
  /**
   * Generic page event.
   *
   * @param args no arguments needed here
   */
  public static void main(String[] args) {

    System.out.println("Generic");

    // step 1: creation of a document-object
    LwgDocument document = new LwgDocument();
    try {
      // step 2:
      // we create a writer that listens to the document
      PdfWriter writer = PdfWriter.getInstance(document,
          new FileOutputStream("Generic.pdf"));
      writer.setPageEvent(new Generic());
     
      // step 3: we open the document
      document.open();
      // step 4:
      Paragraph p = new Paragraph("Generic page event");
      document.add(p);
      Chunk box = new Chunk("box");
      box.setGenericTag("box");
      Chunk ellipse = new Chunk("ellipse");
      ellipse.setGenericTag("ellipse");
      p = new Paragraph("In this example, we will add chunks that are tagged as an ");
      p.add(ellipse);
      p.add(" and chunks that are tagged as a ");
      p.add(box);
      p.add(". Can you see the difference between ");
      Chunk c1 = new Chunk("this");
      c1.setGenericTag("box");
      Chunk c2 = new Chunk("that");
      c2.setGenericTag("ellipse");
      p.add(c1);
      p.add(" and ");
      p.add(c2);
      p.add("? One is a ");
      p.add(box);
      p.add("; the other an ");
      p.add(ellipse);
      document.add(p);
    } catch (DocumentException de) {
      System.err.println(de.getMessage());
    } catch (IOException ioe) {
      System.err.println(ioe.getMessage());
    }

    // step 5: we close the document
    document.close();
  }
}
TOP

Related Classes of com.lowagie.examples.objects.chunk.Generic

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.