Search in sources :

Example 1 with SimpleTable

use of com.lowagie.text.SimpleTable in project itext2 by albfernandez.

the class TablePdfPTableTest method main.

/**
 * Example that is used to test the TableAttributes class.
 *
 * @param args
 *            no arguments needed
 */
@Test
public void main() throws Exception {
    // creation of the document with a certain size and certain margins
    Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);
    // creation of the different writers
    PdfWriter.getInstance(document, PdfTestBase.getOutputStream("tableattributes.pdf"));
    RtfWriter2.getInstance(document, PdfTestBase.getOutputStream("tableattributes.rtf"));
    // open the document
    document.open();
    // add content
    SimpleTable table = new SimpleTable();
    table.setCellpadding(5);
    table.setCellspacing(8);
    SimpleCell row = new SimpleCell(SimpleCell.ROW);
    row.setBackgroundColor(Color.yellow);
    SimpleCell cell = new SimpleCell(SimpleCell.CELL);
    cell.setWidth(100f);
    cell.add(new Paragraph("rownumber"));
    row.add(cell);
    cell = new SimpleCell(SimpleCell.CELL);
    cell.setWidth(50f);
    cell.add(new Paragraph("A"));
    row.add(cell);
    cell = new SimpleCell(SimpleCell.CELL);
    cell.setWidth(50f);
    cell.add(new Paragraph("B"));
    row.add(cell);
    cell = new SimpleCell(SimpleCell.CELL);
    cell.setWidth(50f);
    cell.add(new Paragraph("C"));
    row.add(cell);
    table.addElement(row);
    for (int i = 0; i < 100; i++) {
        row = new SimpleCell(SimpleCell.ROW);
        switch(i % 3) {
            case 0:
                row.setBackgroundColor(Color.red);
                break;
            case 1:
                row.setBackgroundColor(Color.green);
                break;
            case 2:
                row.setBackgroundColor(Color.blue);
                break;
        }
        if (i % 2 == 1) {
            row.setBorderWidth(3f);
        }
        cell = new SimpleCell(SimpleCell.CELL);
        cell.add(new Paragraph("Row " + (i + 1)));
        cell.setSpacing_left(20f);
        row.add(cell);
        if (i % 5 == 4) {
            cell = new SimpleCell(SimpleCell.CELL);
            cell.setColspan(3);
            cell.setBorderColor(Color.orange);
            cell.setBorderWidth(5f);
            cell.add(new Paragraph("Hello!"));
            cell.setHorizontalAlignment(Element.ALIGN_CENTER);
            row.add(cell);
        } else {
            cell = new SimpleCell(SimpleCell.CELL);
            cell.add(new Paragraph("A"));
            row.add(cell);
            cell = new SimpleCell(SimpleCell.CELL);
            cell.add(new Paragraph("B"));
            cell.setBackgroundColor(Color.gray);
            row.add(cell);
            cell = new SimpleCell(SimpleCell.CELL);
            cell.add(new Paragraph("C"));
            row.add(cell);
        }
        table.addElement(row);
    }
    document.add(table);
    // we close the document
    document.close();
}
Also used : SimpleCell(com.lowagie.text.SimpleCell) SimpleTable(com.lowagie.text.SimpleTable) Document(com.lowagie.text.Document) Paragraph(com.lowagie.text.Paragraph) Test(org.junit.Test)

Example 2 with SimpleTable

use of com.lowagie.text.SimpleTable in project OpenPDF by LibrePDF.

the class PdfDocument method add.

/**
 * Signals that an <CODE>Element</CODE> was added to the <CODE>Document</CODE>.
 *
 * @param element the element to add
 * @return <CODE>true</CODE> if the element was added, <CODE>false</CODE> if not.
 * @throws DocumentException when a document isn't open yet, or has been closed
 */
public boolean add(Element element) throws DocumentException {
    if (writer != null && writer.isPaused()) {
        return false;
    }
    try {
        switch(element.type()) {
            // Information (headers)
            case Element.HEADER:
                info.addkey(((Meta) element).getName(), ((Meta) element).getContent());
                break;
            case Element.TITLE:
                info.addTitle(((Meta) element).getContent());
                break;
            case Element.SUBJECT:
                info.addSubject(((Meta) element).getContent());
                break;
            case Element.KEYWORDS:
                info.addKeywords(((Meta) element).getContent());
                break;
            case Element.AUTHOR:
                info.addAuthor(((Meta) element).getContent());
                break;
            case Element.CREATOR:
                info.addCreator(((Meta) element).getContent());
                break;
            case Element.PRODUCER:
                info.addProducer(((Meta) element).getContent());
                break;
            case Element.CREATIONDATE:
                // you can not set the creation date, only reset it
                info.addCreationDate();
                break;
            // content (text)
            case Element.CHUNK:
                {
                    // if there isn't a current line available, we make one
                    if (line == null) {
                        carriageReturn();
                    }
                    // we cast the element to a chunk
                    PdfChunk chunk = new PdfChunk((Chunk) element, anchorAction);
                    // we try to add the chunk to the line, until we succeed
                    {
                        PdfChunk overflow;
                        while ((overflow = line.add(chunk)) != null) {
                            carriageReturn();
                            chunk = overflow;
                            chunk.trimFirstSpace();
                        }
                    }
                    pageEmpty = false;
                    if (chunk.isAttribute(Chunk.NEWPAGE)) {
                        newPage();
                    }
                    break;
                }
            case Element.ANCHOR:
                {
                    leadingCount++;
                    Anchor anchor = (Anchor) element;
                    String url = anchor.getReference();
                    leading = anchor.getLeading();
                    if (url != null) {
                        anchorAction = new PdfAction(url);
                    }
                    // we process the element
                    element.process(this);
                    anchorAction = null;
                    leadingCount--;
                    break;
                }
            case Element.ANNOTATION:
                {
                    if (line == null) {
                        carriageReturn();
                    }
                    Annotation annot = (Annotation) element;
                    Rectangle rect = new Rectangle(0, 0);
                    if (line != null)
                        rect = new Rectangle(annot.llx(indentRight() - line.widthLeft()), annot.ury(indentTop() - currentHeight - 20), annot.urx(indentRight() - line.widthLeft() + 20), annot.lly(indentTop() - currentHeight));
                    PdfAnnotation an = PdfAnnotationsImp.convertAnnotation(writer, annot, rect);
                    annotationsImp.addPlainAnnotation(an);
                    pageEmpty = false;
                    break;
                }
            case Element.PHRASE:
                {
                    leadingCount++;
                    // we cast the element to a phrase and set the leading of the document
                    leading = ((Phrase) element).getLeading();
                    // we process the element
                    element.process(this);
                    leadingCount--;
                    break;
                }
            case Element.PARAGRAPH:
                {
                    leadingCount++;
                    // we cast the element to a paragraph
                    Paragraph paragraph = (Paragraph) element;
                    addSpacing(paragraph.getSpacingBefore(), leading, paragraph.getFont());
                    // we adjust the parameters of the document
                    alignment = paragraph.getAlignment();
                    leading = paragraph.getTotalLeading();
                    carriageReturn();
                    // we don't want to make orphans/widows
                    if (currentHeight + line.height() + leading > indentTop() - indentBottom()) {
                        newPage();
                    }
                    indentation.indentLeft += paragraph.getIndentationLeft();
                    indentation.indentRight += paragraph.getIndentationRight();
                    carriageReturn();
                    PdfPageEvent pageEvent = writer.getPageEvent();
                    if (pageEvent != null && !isSectionTitle)
                        pageEvent.onParagraph(writer, this, indentTop() - currentHeight);
                    // if a paragraph has to be kept together, we wrap it in a table object
                    if (paragraph.getKeepTogether()) {
                        carriageReturn();
                        // fixes bug with nested tables not shown
                        // Paragraph#getChunks() doesn't contain the nested table element
                        PdfPTable table = createInOneCell(paragraph);
                        indentation.indentLeft -= paragraph.getIndentationLeft();
                        indentation.indentRight -= paragraph.getIndentationRight();
                        this.add(table);
                        indentation.indentLeft += paragraph.getIndentationLeft();
                        indentation.indentRight += paragraph.getIndentationRight();
                    } else {
                        line.setExtraIndent(paragraph.getFirstLineIndent());
                        element.process(this);
                        carriageReturn();
                        addSpacing(paragraph.getSpacingAfter(), paragraph.getTotalLeading(), paragraph.getFont());
                    }
                    if (pageEvent != null && !isSectionTitle)
                        pageEvent.onParagraphEnd(writer, this, indentTop() - currentHeight);
                    alignment = Element.ALIGN_LEFT;
                    indentation.indentLeft -= paragraph.getIndentationLeft();
                    indentation.indentRight -= paragraph.getIndentationRight();
                    carriageReturn();
                    leadingCount--;
                    break;
                }
            case Element.SECTION:
            case Element.CHAPTER:
                {
                    // Chapters and Sections only differ in their constructor
                    // so we cast both to a Section
                    Section section = (Section) element;
                    PdfPageEvent pageEvent = writer.getPageEvent();
                    boolean hasTitle = section.isNotAddedYet() && section.getTitle() != null;
                    // if the section is a chapter, we begin a new page
                    if (section.isTriggerNewPage()) {
                        newPage();
                    }
                    if (hasTitle) {
                        float fith = indentTop() - currentHeight;
                        int rotation = pageSize.getRotation();
                        if (rotation == 90 || rotation == 180)
                            fith = pageSize.getHeight() - fith;
                        PdfDestination destination = new PdfDestination(PdfDestination.FITH, fith);
                        while (currentOutline.level() >= section.getDepth()) {
                            currentOutline = currentOutline.parent();
                        }
                        PdfOutline outline = new PdfOutline(currentOutline, destination, section.getBookmarkTitle(), section.isBookmarkOpen());
                        currentOutline = outline;
                    }
                    // some values are set
                    carriageReturn();
                    indentation.sectionIndentLeft += section.getIndentationLeft();
                    indentation.sectionIndentRight += section.getIndentationRight();
                    if (section.isNotAddedYet() && pageEvent != null)
                        if (element.type() == Element.CHAPTER)
                            pageEvent.onChapter(writer, this, indentTop() - currentHeight, section.getTitle());
                        else
                            pageEvent.onSection(writer, this, indentTop() - currentHeight, section.getDepth(), section.getTitle());
                    // the title of the section (if any has to be printed)
                    if (hasTitle) {
                        isSectionTitle = true;
                        add(section.getTitle());
                        isSectionTitle = false;
                    }
                    indentation.sectionIndentLeft += section.getIndentation();
                    // we process the section
                    element.process(this);
                    flushLines();
                    // some parameters are set back to normal again
                    indentation.sectionIndentLeft -= (section.getIndentationLeft() + section.getIndentation());
                    indentation.sectionIndentRight -= section.getIndentationRight();
                    if (section.isComplete() && pageEvent != null)
                        if (element.type() == Element.CHAPTER)
                            pageEvent.onChapterEnd(writer, this, indentTop() - currentHeight);
                        else
                            pageEvent.onSectionEnd(writer, this, indentTop() - currentHeight);
                    break;
                }
            case Element.LIST:
                {
                    // we cast the element to a List
                    List list = (List) element;
                    if (list.isAlignindent()) {
                        list.normalizeIndentation();
                    }
                    // we adjust the document
                    indentation.listIndentLeft += list.getIndentationLeft();
                    indentation.indentRight += list.getIndentationRight();
                    // we process the items in the list
                    element.process(this);
                    // some parameters are set back to normal again
                    indentation.listIndentLeft -= list.getIndentationLeft();
                    indentation.indentRight -= list.getIndentationRight();
                    carriageReturn();
                    break;
                }
            case Element.LISTITEM:
                {
                    leadingCount++;
                    // we cast the element to a ListItem
                    ListItem listItem = (ListItem) element;
                    addSpacing(listItem.getSpacingBefore(), leading, listItem.getFont());
                    // we adjust the document
                    alignment = listItem.getAlignment();
                    indentation.listIndentLeft += listItem.getIndentationLeft();
                    indentation.indentRight += listItem.getIndentationRight();
                    leading = listItem.getTotalLeading();
                    carriageReturn();
                    // we prepare the current line to be able to show us the listsymbol
                    line.setListItem(listItem);
                    // we process the item
                    element.process(this);
                    addSpacing(listItem.getSpacingAfter(), listItem.getTotalLeading(), listItem.getFont());
                    // if the last line is justified, it should be aligned to the left
                    if (line.hasToBeJustified()) {
                        line.resetAlignment();
                    }
                    // some parameters are set back to normal again
                    carriageReturn();
                    indentation.listIndentLeft -= listItem.getIndentationLeft();
                    indentation.indentRight -= listItem.getIndentationRight();
                    leadingCount--;
                    break;
                }
            case Element.RECTANGLE:
                {
                    Rectangle rectangle = (Rectangle) element;
                    graphics.rectangle(rectangle);
                    pageEmpty = false;
                    break;
                }
            case Element.PTABLE:
                {
                    PdfPTable ptable = (PdfPTable) element;
                    if (ptable.size() <= ptable.getHeaderRows())
                        // nothing to do
                        break;
                    // before every table, we add a new line and flush all lines
                    ensureNewLine();
                    flushLines();
                    addPTable(ptable);
                    pageEmpty = false;
                    newLine();
                    break;
                }
            case Element.MULTI_COLUMN_TEXT:
                {
                    ensureNewLine();
                    flushLines();
                    MultiColumnText multiText = (MultiColumnText) element;
                    float height = multiText.write(writer.getDirectContent(), this, indentTop() - currentHeight);
                    currentHeight += height;
                    text.moveText(0, -1f * height);
                    pageEmpty = false;
                    break;
                }
            case Element.TABLE:
                {
                    if (element instanceof SimpleTable) {
                        PdfPTable ptable = ((SimpleTable) element).createPdfPTable();
                        if (ptable.size() <= ptable.getHeaderRows())
                            // nothing to do
                            break;
                        // before every table, we add a new line and flush all lines
                        ensureNewLine();
                        flushLines();
                        addPTable(ptable);
                        pageEmpty = false;
                        break;
                    } else if (element instanceof Table) {
                        try {
                            PdfPTable ptable = ((Table) element).createPdfPTable();
                            if (ptable.size() <= ptable.getHeaderRows())
                                // nothing to do
                                break;
                            // before every table, we add a new line and flush all lines
                            ensureNewLine();
                            flushLines();
                            addPTable(ptable);
                            pageEmpty = false;
                            break;
                        } catch (BadElementException bee) {
                            // constructing the PdfTable
                            // Before the table, add a blank line using offset or default leading
                            float offset = ((Table) element).getOffset();
                            if (Float.isNaN(offset))
                                offset = leading;
                            carriageReturn();
                            lines.add(new PdfLine(indentLeft(), indentRight(), alignment, offset));
                            currentHeight += offset;
                            addPdfTable((Table) element);
                        }
                    } else {
                        return false;
                    }
                    break;
                }
            case Element.JPEG:
            case Element.JPEG2000:
            case Element.JBIG2:
            case Element.IMGRAW:
            case Element.IMGTEMPLATE:
                {
                    // carriageReturn(); suggestion by Marc Campforts
                    add((Image) element);
                    break;
                }
            case Element.YMARK:
                {
                    DrawInterface zh = (DrawInterface) element;
                    zh.draw(graphics, indentLeft(), indentBottom(), indentRight(), indentTop(), indentTop() - currentHeight - (leadingCount > 0 ? leading : 0));
                    pageEmpty = false;
                    break;
                }
            case Element.MARKED:
                {
                    MarkedObject mo;
                    if (element instanceof MarkedSection) {
                        mo = ((MarkedSection) element).getTitle();
                        if (mo != null) {
                            mo.process(this);
                        }
                    }
                    mo = (MarkedObject) element;
                    mo.process(this);
                    break;
                }
            default:
                return false;
        }
        lastElementType = element.type();
        return true;
    } catch (Exception e) {
        throw new DocumentException(e);
    }
}
Also used : Rectangle(com.lowagie.text.Rectangle) Image(com.lowagie.text.Image) DocumentException(com.lowagie.text.DocumentException) ArrayList(java.util.ArrayList) List(com.lowagie.text.List) Table(com.lowagie.text.Table) SimpleTable(com.lowagie.text.SimpleTable) BadElementException(com.lowagie.text.BadElementException) MarkedSection(com.lowagie.text.MarkedSection) SimpleTable(com.lowagie.text.SimpleTable) DrawInterface(com.lowagie.text.pdf.draw.DrawInterface) Phrase(com.lowagie.text.Phrase) Chunk(com.lowagie.text.Chunk) MarkedSection(com.lowagie.text.MarkedSection) Section(com.lowagie.text.Section) Annotation(com.lowagie.text.Annotation) BadElementException(com.lowagie.text.BadElementException) IOException(java.io.IOException) DocumentException(com.lowagie.text.DocumentException) Paragraph(com.lowagie.text.Paragraph) Anchor(com.lowagie.text.Anchor) ListItem(com.lowagie.text.ListItem) MarkedObject(com.lowagie.text.MarkedObject)

Example 3 with SimpleTable

use of com.lowagie.text.SimpleTable in project OpenPDF by LibrePDF.

the class ColumnText method addElement.

/**
 * Adds an element. Elements supported are <CODE>Paragraph</CODE>,
 * <CODE>List</CODE>, <CODE>PdfPTable</CODE>, <CODE>Image</CODE> and
 * <CODE>Graphic</CODE>.
 * <p>
 * It removes all the text placed with <CODE>addText()</CODE>.
 *
 * @param element the <CODE>Element</CODE>
 */
public void addElement(Element element) {
    if (element == null)
        return;
    if (element instanceof Image) {
        Image img = (Image) element;
        PdfPTable t = new PdfPTable(1);
        float w = img.getWidthPercentage();
        if (w == 0) {
            t.setTotalWidth(img.getScaledWidth());
            t.setLockedWidth(true);
        } else
            t.setWidthPercentage(w);
        t.setSpacingAfter(img.getSpacingAfter());
        t.setSpacingBefore(img.getSpacingBefore());
        switch(img.getAlignment()) {
            case Image.LEFT:
                t.setHorizontalAlignment(Element.ALIGN_LEFT);
                break;
            case Image.RIGHT:
                t.setHorizontalAlignment(Element.ALIGN_RIGHT);
                break;
            default:
                t.setHorizontalAlignment(Element.ALIGN_CENTER);
                break;
        }
        PdfPCell c = new PdfPCell(img, true);
        c.setPadding(0);
        c.setBorder(img.getBorder());
        c.setBorderColor(img.getBorderColor());
        c.setBorderWidth(img.getBorderWidth());
        c.setBackgroundColor(img.getBackgroundColor());
        t.addCell(c);
        element = t;
    }
    if (element.type() == Element.CHUNK) {
        element = new Paragraph((Chunk) element);
    } else if (element.type() == Element.PHRASE) {
        element = new Paragraph((Phrase) element);
    }
    if (element instanceof SimpleTable) {
        try {
            element = ((SimpleTable) element).createPdfPTable();
        } catch (DocumentException e) {
            throw new IllegalArgumentException(MessageLocalization.getComposedMessage("element.not.allowed"));
        }
    } else if (element.type() != Element.PARAGRAPH && element.type() != Element.LIST && element.type() != Element.PTABLE && element.type() != Element.YMARK)
        throw new IllegalArgumentException(MessageLocalization.getComposedMessage("element.not.allowed"));
    if (!composite) {
        composite = true;
        compositeElements = new LinkedList<>();
        bidiLine = null;
        waitPhrase = null;
    }
    compositeElements.add(element);
}
Also used : DocumentException(com.lowagie.text.DocumentException) SimpleTable(com.lowagie.text.SimpleTable) Image(com.lowagie.text.Image) Chunk(com.lowagie.text.Chunk) Paragraph(com.lowagie.text.Paragraph)

Example 4 with SimpleTable

use of com.lowagie.text.SimpleTable in project OpenPDF by LibrePDF.

the class TablePdfPTable method main.

/**
 * Example that is used to test the TableAttributes class.
 * @param args no arguments needed
 */
public static void main(String[] args) {
    System.out.println("TableAttributes");
    // creation of the document with a certain size and certain margins
    Document document = new Document(PageSize.A4.rotate(), 50, 50, 50, 50);
    try {
        // creation of the different writers
        PdfWriter.getInstance(document, new FileOutputStream("tableattributes.pdf"));
        // open the document
        document.open();
        // add content
        SimpleTable table = new SimpleTable();
        table.setCellpadding(5);
        table.setCellspacing(8);
        SimpleCell row = new SimpleCell(SimpleCell.ROW);
        row.setBackgroundColor(Color.yellow);
        SimpleCell cell = new SimpleCell(SimpleCell.CELL);
        cell.setWidth(100f);
        cell.add(new Paragraph("rownumber"));
        row.add(cell);
        cell = new SimpleCell(SimpleCell.CELL);
        cell.setWidth(50f);
        cell.add(new Paragraph("A"));
        row.add(cell);
        cell = new SimpleCell(SimpleCell.CELL);
        cell.setWidth(50f);
        cell.add(new Paragraph("B"));
        row.add(cell);
        cell = new SimpleCell(SimpleCell.CELL);
        cell.setWidth(50f);
        cell.add(new Paragraph("C"));
        row.add(cell);
        table.addElement(row);
        for (int i = 0; i < 100; i++) {
            row = new SimpleCell(SimpleCell.ROW);
            switch(i % 3) {
                case 0:
                    row.setBackgroundColor(Color.red);
                    break;
                case 1:
                    row.setBackgroundColor(Color.green);
                    break;
                case 2:
                    row.setBackgroundColor(Color.blue);
                    break;
            }
            if (i % 2 == 1) {
                row.setBorderWidth(3f);
            }
            cell = new SimpleCell(SimpleCell.CELL);
            cell.add(new Paragraph("Row " + (i + 1)));
            cell.setSpacing_left(20f);
            row.add(cell);
            if (i % 5 == 4) {
                cell = new SimpleCell(SimpleCell.CELL);
                cell.setColspan(3);
                cell.setBorderColor(Color.orange);
                cell.setBorderWidth(5f);
                cell.add(new Paragraph("Hello!"));
                cell.setHorizontalAlignment(Element.ALIGN_CENTER);
                row.add(cell);
            } else {
                cell = new SimpleCell(SimpleCell.CELL);
                cell.add(new Paragraph("A"));
                row.add(cell);
                cell = new SimpleCell(SimpleCell.CELL);
                cell.add(new Paragraph("B"));
                cell.setBackgroundColor(Color.gray);
                row.add(cell);
                cell = new SimpleCell(SimpleCell.CELL);
                cell.add(new Paragraph("C"));
                row.add(cell);
            }
            table.addElement(row);
        }
        document.add(table);
    } catch (Exception e) {
        e.printStackTrace();
    }
    // we close the document
    document.close();
}
Also used : SimpleCell(com.lowagie.text.SimpleCell) FileOutputStream(java.io.FileOutputStream) SimpleTable(com.lowagie.text.SimpleTable) Document(com.lowagie.text.Document) Paragraph(com.lowagie.text.Paragraph)

Example 5 with SimpleTable

use of com.lowagie.text.SimpleTable in project itext2 by albfernandez.

the class ColumnText method addElement.

/**
 * Adds an element. Elements supported are <CODE>Paragraph</CODE>,
 * <CODE>List</CODE>, <CODE>PdfPTable</CODE>, <CODE>Image</CODE> and
 * <CODE>Graphic</CODE>.
 * <p>
 * It removes all the text placed with <CODE>addText()</CODE>.
 *
 * @param element the <CODE>Element</CODE>
 */
public void addElement(Element element) {
    if (element == null)
        return;
    if (element instanceof Image) {
        Image img = (Image) element;
        PdfPTable t = new PdfPTable(1);
        float w = img.getWidthPercentage();
        if (w == 0) {
            t.setTotalWidth(img.getScaledWidth());
            t.setLockedWidth(true);
        } else
            t.setWidthPercentage(w);
        t.setSpacingAfter(img.getSpacingAfter());
        t.setSpacingBefore(img.getSpacingBefore());
        switch(img.getAlignment()) {
            case Image.LEFT:
                t.setHorizontalAlignment(Element.ALIGN_LEFT);
                break;
            case Image.RIGHT:
                t.setHorizontalAlignment(Element.ALIGN_RIGHT);
                break;
            default:
                t.setHorizontalAlignment(Element.ALIGN_CENTER);
                break;
        }
        PdfPCell c = new PdfPCell(img, true);
        c.setPadding(0);
        c.setBorder(img.getBorder());
        c.setBorderColor(img.getBorderColor());
        c.setBorderWidth(img.getBorderWidth());
        c.setBackgroundColor(img.getBackgroundColor());
        t.addCell(c);
        element = t;
    }
    if (element.type() == Element.CHUNK) {
        element = new Paragraph((Chunk) element);
    } else if (element.type() == Element.PHRASE) {
        element = new Paragraph((Phrase) element);
    }
    if (element instanceof SimpleTable) {
        try {
            element = ((SimpleTable) element).createPdfPTable();
        } catch (DocumentException e) {
            throw new IllegalArgumentException("Element not allowed." + element.type(), e);
        }
    } else if (element.type() != Element.PARAGRAPH && element.type() != Element.LIST && element.type() != Element.PTABLE && element.type() != Element.YMARK)
        throw new IllegalArgumentException("Element not allowed." + element.type());
    if (!composite) {
        composite = true;
        compositeElements = new LinkedList();
        bidiLine = null;
        waitPhrase = null;
    }
    compositeElements.add(element);
}
Also used : DocumentException(com.lowagie.text.DocumentException) SimpleTable(com.lowagie.text.SimpleTable) Image(com.lowagie.text.Image) Chunk(com.lowagie.text.Chunk) LinkedList(java.util.LinkedList) Paragraph(com.lowagie.text.Paragraph)

Aggregations

Paragraph (com.lowagie.text.Paragraph)7 SimpleTable (com.lowagie.text.SimpleTable)7 Chunk (com.lowagie.text.Chunk)5 Image (com.lowagie.text.Image)5 DocumentException (com.lowagie.text.DocumentException)4 Anchor (com.lowagie.text.Anchor)3 Annotation (com.lowagie.text.Annotation)3 List (com.lowagie.text.List)3 ListItem (com.lowagie.text.ListItem)3 Phrase (com.lowagie.text.Phrase)3 Section (com.lowagie.text.Section)3 Table (com.lowagie.text.Table)3 ArrayList (java.util.ArrayList)3 BadElementException (com.lowagie.text.BadElementException)2 Document (com.lowagie.text.Document)2 MarkedObject (com.lowagie.text.MarkedObject)2 MarkedSection (com.lowagie.text.MarkedSection)2 Rectangle (com.lowagie.text.Rectangle)2 SimpleCell (com.lowagie.text.SimpleCell)2 DrawInterface (com.lowagie.text.pdf.draw.DrawInterface)2