/*
* $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.columns;
import java.io.FileOutputStream;
import java.io.IOException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Phrase;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.ColumnText;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfWriter;
/**
* Writes text in a column that can be added at an absolute position.
*/
public class Column {
/**
* Demonstrating the use of ColumnText
* @param args no arguments needed
*/
public static void main(String[] args) {
System.out.println("Simple single object columns");
// step 1: creation of a document-object
Document document = new Document();
try {
// step 2: creation of the writer
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("column.pdf"));
// step 3: we open the document
document.open();
// step 4:
// we create some content
BaseFont bf = BaseFont.createFont(BaseFont.COURIER, BaseFont.CP1252, BaseFont.NOT_EMBEDDED);
Font font = new Font(bf, 11, Font.NORMAL);
Phrase unicodes = new Phrase(15, "UNI\n", font);
Phrase characters = new Phrase(15, "\n", font);
Phrase names = new Phrase(15, "NAME\n", font);
for (int i = 0; i < 27; i++) {
unicodes.add(uni[i] + "\n");
characters.add(code[i] + "\n");
names.add(name[i] + "\n");
}
// we grab the ContentByte and do some stuff with it
PdfContentByte cb = writer.getDirectContent();
ColumnText ct = new ColumnText(cb);
ct.setSimpleColumn(unicodes, 60, 300, 100, 300 + 28 * 15, 15, Element.ALIGN_CENTER);
ct.go();
cb.rectangle(103, 295, 52, 8 + 28 * 15);
cb.stroke();
ct.setSimpleColumn(characters, 105, 300, 150, 300 + 28 * 15, 15, Element.ALIGN_RIGHT);
ct.go();
ct.setSimpleColumn(names, 160, 300, 500, 300 + 28 * 15, 15, Element.ALIGN_LEFT);
ct.go();
}
catch(DocumentException de) {
System.err.println(de.getMessage());
}
catch(IOException ioe) {
System.err.println(ioe.getMessage());
}
// step 5: we close the document
document.close();
}
/** a string array we want to output. */
public static String[] uni = new String[27];
/** a string array we want to output. */
public static String[] code = new String[27];
/** a string array we want to output. */
public static String[] name = new String[27];
static {
uni[0]="\\u0152";
code[0]="\u0152";
name[0]="LATIN CAPITAL LIGATURE OE";
uni[1]="\\u0153";
code[1]="\u0153";
name[1]="LATIN SMALL LIGATURE OE";
uni[2]="\\u0160";
code[2]="\u0160";
name[2]="LATIN CAPITAL LETTER S WITH CARON";
uni[3]="\\u0161";
code[3]="\u0161";
name[3]="LATIN SMALL LETTER S WITH CARON";
uni[4]="\\u0178";
code[4]="\u0178";
name[4]="LATIN CAPITAL LETTER Y WITH DIAERESIS";
uni[5]="\\u017D";
code[5]="\u017D";
name[5]="LATIN CAPITAL LETTER Z WITH CARON";
uni[6]="\\u017E";
code[6]="\u017E";
name[6]="LATIN SMALL LETTER Z WITH CARON";
uni[7]="\\u0192";
code[7]="\u0192";
name[7]="LATIN SMALL LETTER F WITH HOOK";
uni[8]="\\u02C6";
code[8]="\u02C6";
name[8]="MODIFIER LETTER CIRCUMFLEX ACCENT";
uni[9]="\\u02DC";
code[9]="\u02DC";
name[9]="SMALL TILDE";
uni[10]="\\u2013";
code[10]="\u2013";
name[10]="EN DASH";
uni[11]="\\u2014";
code[11]="\u2014";
name[11]="EM DASH";
uni[12]="\\u2018";
code[12]="\u2018";
name[12]="LEFT SINGLE QUOTATION MARK";
uni[13]="\\u2019";
code[13]="\u2019";
name[13]="RIGHT SINGLE QUOTATION MARK";
uni[14]="\\u201A";
code[14]="\u201A";
name[14]="SINGLE LOW-9 QUOTATION MARK";
uni[15]="\\u201C";
code[15]="\u201C";
name[15]="LEFT DOUBLE QUOTATION MARK";
uni[16]="\\u201D";
code[16]="\u201D";
name[16]="RIGHT DOUBLE QUOTATION MARK";
uni[17]="\\u201E";
code[17]="\u201E";
name[17]="DOUBLE LOW-9 QUOTATION MARK";
uni[18]="\\u2020";
code[18]="\u2020";
name[18]="DAGGER";
uni[19]="\\u2021";
code[19]="\u2021";
name[19]="DOUBLE DAGGER";
uni[20]="\\u2022";
code[20]="\u2022";
name[20]="BULLET";
uni[21]="\\u2026";
code[21]="\u2026";
name[21]="HORIZONTAL ELLIPSIS";
uni[22]="\\u2030";
code[22]="\u2030";
name[22]="PER MILLE SIGN";
uni[23]="\\u2039";
code[23]="\u2039";
name[23]="SINGLE LEFT-POINTING ANGLE QUOTATION MARK";
uni[24]="\\u203A";
code[24]="\u203A";
name[24]="SINGLE RIGHT-POINTING ANGLE QUOTATION MARK";
uni[25]="\\u20AC";
code[25]="\u20AC";
name[25]="EURO SIGN";
uni[26]="\\u2122";
code[26]="\u2122";
name[26]="TRADE MARK SIGN";
}
}