Package com.lowagie.examples.objects.tables

Source Code of com.lowagie.examples.objects.tables.TableBorders

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

import java.awt.Color;

import com.lowagie.text.BadElementException;
import com.lowagie.text.LwgDocument;
import com.lowagie.text.DocumentException;
import com.lowagie.text.LwgElement;
import com.lowagie.text.LwgFont;
import com.lowagie.text.FontFactory;
import com.lowagie.text.LwgPageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.LwgRectangle;
import com.lowagie.text.pdf.LwgPdfPCell;
import com.lowagie.text.pdf.LwgPdfPTable;
import com.lowagie.text.pdf.PdfWriter;
import org.geoforge.demo.GfrFileOutputStream;

/**
* Demonstrates different borderstyles.
*/
public class TableBorders {
  /**
   * Demonstrates different borderstyles.
   *
   * @param args
   *            the number of rows for each table fragment.
   */
  public static void main(String[] args) {

    System.out.println("Table Borders");
    // step1
    LwgDocument document = new LwgDocument(LwgPageSize.A4, 50, 50, 50, 50);
    try {
      // step2
      PdfWriter writer = PdfWriter.getInstance(document,
          new GfrFileOutputStream("com.lowagie.examples.objects.tables.TableBorders.pdf"));
      // step3
      document.open();
      // step4
     
      // page 1
          LwgFont tableFont = FontFactory.getFont("Helvetica", 8, LwgFont.BOLD, Color.BLACK);
          float padding = 0f;
          LwgRectangle border = new LwgRectangle(0f, 0f);
          border.setBorderWidthLeft(6f);
          border.setBorderWidthBottom(5f);
          border.setBorderWidthRight(4f);
          border.setBorderWidthTop(2f);
          border.setBorderColorLeft(Color.RED);
          border.setBorderColorBottom(Color.ORANGE);
          border.setBorderColorRight(Color.YELLOW);
          border.setBorderColorTop(Color.GREEN);
          makeTestPage(tableFont, border, writer, document, padding, true, true);
          LwgFont font = FontFactory.getFont("Helvetica", 10);
          Paragraph p;
          p = new Paragraph("\nVarious border widths and colors\nuseAscender=true, useDescender=true", font);
          document.add(p);
         
          document.newPage();
         
          // page 2
          padding = 2f;
          border = new LwgRectangle(0f, 0f);
          border.setBorderWidthLeft(1f);
          border.setBorderWidthBottom(2f);
          border.setBorderWidthRight(1f);
          border.setBorderWidthTop(2f);
          border.setBorderColor(Color.BLACK);
          makeTestPage(tableFont, border, writer, document, padding, true, true);
          p = new Paragraph("More typical use - padding of 2\nuseBorderPadding=true, useAscender=true, useDescender=true", font);
          document.add(p);
         
          document.newPage();
         
          // page 3
          padding = 0f;
          border = new LwgRectangle(0f, 0f);
          border.setBorderWidthLeft(1f);
          border.setBorderWidthBottom(2f);
          border.setBorderWidthRight(1f);
          border.setBorderWidthTop(2f);
          border.setBorderColor(Color.BLACK);
          makeTestPage(tableFont, border, writer, document, padding, false, true);
          p = new Paragraph("\nuseBorderPadding=true, useAscender=false, useDescender=true", font);
          document.add(p);
         
          document.newPage();
         
          // page 4
          padding = 0f;
          border = new LwgRectangle(0f, 0f);
          border.setBorderWidthLeft(1f);
          border.setBorderWidthBottom(2f);
          border.setBorderWidthRight(1f);
          border.setBorderWidthTop(2f);
          border.setBorderColor(Color.BLACK);
          makeTestPage(tableFont, border, writer, document, padding, false, false);
          p = new Paragraph("\nuseBorderPadding=true, useAscender=false, useDescender=false", font);
          document.add(p);
         
          document.newPage();
         
          // page 5
          padding = 0f;
          border = new LwgRectangle(0f, 0f);
          border.setBorderWidthLeft(1f);
          border.setBorderWidthBottom(2f);
          border.setBorderWidthRight(1f);
          border.setBorderWidthTop(2f);
          border.setBorderColor(Color.BLACK);
          makeTestPage(tableFont, border, writer, document, padding, true, false);
          p = new Paragraph("\nuseBorderPadding=true, useAscender=true, useDescender=false", font);
          document.add(p);
    } catch (Exception de) {
      de.printStackTrace();
    }
    // step5
    document.close();
  }

    private static void makeTestPage(LwgFont tableFont, LwgRectangle borders, PdfWriter writer, LwgDocument document,
                              float padding, boolean ascender, boolean descender) throws BadElementException, DocumentException {
        document.newPage();
        LwgPdfPTable table = null;
        table = new LwgPdfPTable(4);
        table.setWidthPercentage(100f);

        float leading = tableFont.getSize() * 1.2f;

        table.add(makeCell("1-Top", LwgElement.ALIGN_TOP, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        table.add(makeCell("2-Middle", LwgElement.ALIGN_MIDDLE, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        table.add(makeCell("3-Bottom", LwgElement.ALIGN_BOTTOM, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        table.add(makeCell("4-Has a y", LwgElement.ALIGN_TOP, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));

        table.add(makeCell("5-Abcdy", LwgElement.ALIGN_TOP, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        table.add(makeCell("6-Abcdy", LwgElement.ALIGN_MIDDLE, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        table.add(makeCell("7-Abcdy", LwgElement.ALIGN_BOTTOM, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        table.add(makeCell("8-This\nis\na little\ntaller", LwgElement.ALIGN_TOP, LwgElement.ALIGN_LEFT, tableFont, leading, padding, borders, ascender, descender));
        document.add(table);
    }

    private static LwgPdfPCell makeCell(String text, int vAlignment, int hAlignment, LwgFont font, float leading, float padding, LwgRectangle borders, boolean ascender, boolean descender) {
        Paragraph p = new Paragraph(text, font);
        p.setLeading(leading);

        LwgPdfPCell cell = new LwgPdfPCell(p);
        cell.setLeading(leading, 0);
        cell.setVerticalAlignment(vAlignment);
        cell.setHorizontalAlignment(hAlignment);
        cell.cloneNonPositionParameters(borders);
        cell.setUseAscender(ascender);
        cell.setUseDescender(descender);
        cell.setUseBorderPadding(true);
        cell.setPadding(padding);
        return cell;
    }
}
TOP

Related Classes of com.lowagie.examples.objects.tables.TableBorders

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.