All Downloads are FREE. Search and download functionalities are using the official Maven repository.

gutenberg.itext.pegdown.TableNodeProcessor Maven / Gradle / Ivy

package gutenberg.itext.pegdown;

import com.itextpdf.text.Element;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfPTableEvent;
import org.pegdown.ast.Node;
import org.pegdown.ast.TableColumnNode;
import org.pegdown.ast.TableNode;

import java.util.List;

/**
 * @author @aloyer
 */
public class TableNodeProcessor extends Processor {

    private final PdfPTableEvent[] tableEvents;

    public TableNodeProcessor(PdfPTableEvent... tableEvents) {
        this.tableEvents = tableEvents;
    }

    @Override
    public void process(int level, Node node, InvocationContext context) {

        TableNode tableNode = (TableNode) node;
        List tableNodeColumns = tableNode.getColumns();

        PdfPTable table = new PdfPTable(tableNodeColumns.size());
        for (PdfPTableEvent tableEvent : tableEvents) {
            table.setTableEvent(tableEvent);
        }
        context.pushTable(new TableInfos(table, tableNodeColumns));
        context.processChildren(level, node);
        context.popTable();
        context.append(table);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy