Search in sources :

Example 1 with RtfHeaderFooter

use of com.lowagie.text.rtf.headerfooter.RtfHeaderFooter in project javamelody by javamelody.

the class MRtfWriter method createWriter.

/**
 * We create a writer that listens to the document and directs a RTF-stream to out
 *
 * @param table
 *           MBasicTable
 * @param document
 *           Document
 * @param out
 *           OutputStream
 * @return DocWriter
 */
@Override
protected DocWriter createWriter(final MBasicTable table, final Document document, final OutputStream out) {
    final RtfWriter2 writer = RtfWriter2.getInstance(document, out);
    // title
    final String title = buildTitle(table);
    if (title != null) {
        final HeaderFooter header = new RtfHeaderFooter(new Paragraph(title));
        header.setAlignment(Element.ALIGN_LEFT);
        header.setBorder(Rectangle.NO_BORDER);
        document.setHeader(header);
        document.addTitle(title);
    }
    // advanced page numbers : x/y
    final Paragraph footerParagraph = new Paragraph();
    final Font font = FontFactory.getFont(FontFactory.TIMES_ROMAN, 12, Font.NORMAL);
    footerParagraph.add(new RtfPageNumber(font));
    footerParagraph.add(new Phrase(" / ", font));
    footerParagraph.add(new RtfTotalPageNumber(font));
    footerParagraph.setAlignment(Element.ALIGN_CENTER);
    final HeaderFooter footer = new RtfHeaderFooter(footerParagraph);
    footer.setBorder(Rectangle.TOP);
    document.setFooter(footer);
    return writer;
}
Also used : RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) HeaderFooter(com.lowagie.text.HeaderFooter) RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) RtfTotalPageNumber(com.lowagie.text.rtf.field.RtfTotalPageNumber) Phrase(com.lowagie.text.Phrase) Font(com.lowagie.text.Font) RtfWriter2(com.lowagie.text.rtf.RtfWriter2) Paragraph(com.lowagie.text.Paragraph) RtfPageNumber(com.lowagie.text.rtf.field.RtfPageNumber)

Example 2 with RtfHeaderFooter

use of com.lowagie.text.rtf.headerfooter.RtfHeaderFooter in project itext2 by albfernandez.

the class RtfTest method main.

/**
 * Creates 1 RTF file.
 */
@Test
public void main() throws Exception {
    Document doc = new Document();
    RtfWriter2 writer2 = RtfWriter2.getInstance(doc, PdfTestBase.getOutputStream("testNew.rtf"));
    writer2.setAutogenerateTOCEntries(true);
    Table headerTable = new Table(3);
    headerTable.addCell("Test Cell 1");
    headerTable.addCell("Test Cell 2");
    headerTable.addCell("Test Cell 3");
    HeaderFooter header = new RtfHeaderFooter(headerTable);
    RtfHeaderFooterGroup footer = new RtfHeaderFooterGroup();
    footer.setHeaderFooter(new RtfHeaderFooter(new Phrase("This is the footer on the title page")), com.lowagie.text.rtf.headerfooter.RtfHeaderFooter.DISPLAY_FIRST_PAGE);
    footer.setHeaderFooter(new RtfHeaderFooter(new Phrase("This is a left side page")), com.lowagie.text.rtf.headerfooter.RtfHeaderFooter.DISPLAY_LEFT_PAGES);
    footer.setHeaderFooter(new RtfHeaderFooter(new Phrase("This is a right side page")), com.lowagie.text.rtf.headerfooter.RtfHeaderFooter.DISPLAY_RIGHT_PAGES);
    doc.setHeader(header);
    doc.setFooter(footer);
    doc.open();
    Paragraph p = new Paragraph();
    p.add(new RtfTableOfContents("UPDATE ME!"));
    doc.add(p);
    p = new Paragraph("", new RtfFont("Staccato222 BT"));
    p.add(new Chunk("Hello! "));
    p.add(new Chunk("How do you do?"));
    doc.add(p);
    p.setAlignment(Element.ALIGN_RIGHT);
    doc.add(p);
    Anchor a = new Anchor("http://www.uni-klu.ac.at");
    a.setReference("http://www.uni-klu.ac.at");
    doc.add(a);
    Image img = Image.getInstance(PdfTestBase.RESOURCES_DIR + "pngnow.png");
    doc.add(new Chunk(img, 0, 0));
    doc.add(new Annotation("Mark", "This works!"));
    Chunk c = new Chunk("");
    c.setNewPage();
    doc.add(c);
    List subList = new List(true, 40);
    subList.add(new ListItem("Sub list 1"));
    subList.add(new ListItem("Sub list 2"));
    List list = new List(true, 20);
    list.add(new ListItem("Test line 1"));
    list.add(new ListItem("Test line 2 - This is a really long test line to test that linebreaks are working the way they are supposed to work so a really really long line of drivel is required"));
    list.add(subList);
    list.add(new ListItem("Test line 3 - \t\u20ac\t 60,-"));
    doc.add(list);
    list = new List(false, 20);
    list.add(new ListItem("Bullet"));
    list.add(new ListItem("Another one"));
    doc.add(list);
    doc.newPage();
    Chapter chapter = new Chapter(new Paragraph("This is a Chapter"), 1);
    chapter.add(new Paragraph("This is some text that belongs to this chapter."));
    chapter.add(new Paragraph("A second paragraph. What a surprise."));
    Section section = chapter.addSection(new Paragraph("This is a subsection"));
    section.add(new Paragraph("Text in the subsection."));
    doc.add(chapter);
    com.lowagie.text.rtf.field.RtfTOCEntry rtfTOC = new com.lowagie.text.rtf.field.RtfTOCEntry("Table Test");
    doc.add(rtfTOC);
    Table table = new Table(3);
    table.setPadding(2);
    table.setAlignment(Element.ALIGN_LEFT);
    table.setSpacing(2);
    Cell emptyCell = new Cell("");
    Cell cellLeft = new Cell("Left Alignment");
    cellLeft.setHorizontalAlignment(Element.ALIGN_LEFT);
    Cell cellCenter = new Cell("Center Alignment");
    cellCenter.setHorizontalAlignment(Element.ALIGN_CENTER);
    Cell cellRight = new Cell("Right Alignment");
    cellRight.setHorizontalAlignment(Element.ALIGN_RIGHT);
    table.addCell(cellLeft);
    table.addCell(cellCenter);
    table.addCell(cellRight);
    Cell cellSpanHoriz = new Cell("This Cell spans two columns");
    cellSpanHoriz.setColspan(2);
    table.addCell(cellSpanHoriz);
    table.addCell(emptyCell);
    Cell cellSpanVert = new Cell("This Cell spans two rows");
    cellSpanVert.setRowspan(2);
    table.addCell(emptyCell);
    table.addCell(cellSpanVert);
    table.addCell(emptyCell);
    table.addCell(emptyCell);
    table.addCell(emptyCell);
    Cell cellSpanHorizVert = new Cell("This Cell spans both two columns and two rows");
    cellSpanHorizVert.setColspan(2);
    cellSpanHorizVert.setRowspan(2);
    table.addCell(emptyCell);
    table.addCell(cellSpanHorizVert);
    table.addCell(emptyCell);
    RtfCell cellDotted = new RtfCell("Dotted border");
    cellDotted.setBorders(new RtfBorderGroup(Rectangle.BOX, RtfBorder.BORDER_DOTTED, 1, new Color(0, 0, 0)));
    RtfCell cellEmbossed = new RtfCell("Embossed border");
    cellEmbossed.setBorders(new RtfBorderGroup(Rectangle.BOX, RtfBorder.BORDER_EMBOSS, 1, new Color(0, 0, 0)));
    RtfCell cellNoBorder = new RtfCell("No border");
    cellNoBorder.setBorders(new RtfBorderGroup());
    table.addCell(cellDotted);
    table.addCell(cellEmbossed);
    table.addCell(cellNoBorder);
    doc.add(table);
    for (int i = 0; i < 300; i++) {
        doc.add(new Paragraph("Dummy line to get multi-page document. Line " + (i + 1)));
    }
    doc.close();
}
Also used : RtfFont(com.lowagie.text.rtf.style.RtfFont) HeaderFooter(com.lowagie.text.HeaderFooter) RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) Document(com.lowagie.text.Document) Image(com.lowagie.text.Image) RtfHeaderFooterGroup(com.lowagie.text.rtf.headerfooter.RtfHeaderFooterGroup) List(com.lowagie.text.List) RtfCell(com.lowagie.text.rtf.table.RtfCell) Cell(com.lowagie.text.Cell) Table(com.lowagie.text.Table) RtfBorderGroup(com.lowagie.text.rtf.table.RtfBorderGroup) Color(java.awt.Color) Chapter(com.lowagie.text.Chapter) RtfCell(com.lowagie.text.rtf.table.RtfCell) Phrase(com.lowagie.text.Phrase) Chunk(com.lowagie.text.Chunk) Section(com.lowagie.text.Section) Annotation(com.lowagie.text.Annotation) Paragraph(com.lowagie.text.Paragraph) RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) Anchor(com.lowagie.text.Anchor) ListItem(com.lowagie.text.ListItem) RtfTableOfContents(com.lowagie.text.rtf.field.RtfTableOfContents) RtfWriter2(com.lowagie.text.rtf.RtfWriter2) Test(org.junit.Test)

Example 3 with RtfHeaderFooter

use of com.lowagie.text.rtf.headerfooter.RtfHeaderFooter in project itext2 by albfernandez.

the class MultipleHeaderFooterTest method main.

/**
 * Extended font example.
 */
@Test
public void main() throws Exception {
    Document document = new Document();
    RtfWriter2.getInstance(document, PdfTestBase.getOutputStream("MultipleHeaderFooter.rtf"));
    // Create the Paragraph that will be used in the header.
    Paragraph date = new Paragraph("01.01.2010");
    date.setAlignment(Element.ALIGN_CENTER);
    // Create the RtfHeaderFooterGroup for the header.
    // To display the same header on both pages, but not the
    // title page set them to left and right pages explicitly.
    RtfHeaderFooterGroup header = new RtfHeaderFooterGroup();
    header.setHeaderFooter(new RtfHeaderFooter(date), RtfHeaderFooter.DISPLAY_LEFT_PAGES);
    header.setHeaderFooter(new RtfHeaderFooter(date), RtfHeaderFooter.DISPLAY_RIGHT_PAGES);
    // Set the header
    document.setHeader(header);
    // Create the paragraphs that will be used as footers
    Paragraph titleFooter = new Paragraph("Multiple headers / footers example");
    titleFooter.setAlignment(Element.ALIGN_CENTER);
    Paragraph leftFooter = new Paragraph("Page ");
    leftFooter.add(new RtfPageNumber());
    Paragraph rightFooter = new Paragraph("Page ");
    rightFooter.add(new RtfPageNumber());
    rightFooter.setAlignment(Element.ALIGN_RIGHT);
    // Create the RtfHeaderGroup for the footer and set the footers
    // at the desired positions
    RtfHeaderFooterGroup footer = new RtfHeaderFooterGroup();
    footer.setHeaderFooter(new RtfHeaderFooter(titleFooter), RtfHeaderFooter.DISPLAY_FIRST_PAGE);
    footer.setHeaderFooter(new RtfHeaderFooter(leftFooter), RtfHeaderFooter.DISPLAY_LEFT_PAGES);
    footer.setHeaderFooter(new RtfHeaderFooter(rightFooter), RtfHeaderFooter.DISPLAY_RIGHT_PAGES);
    // Set the document footer
    document.setFooter(footer);
    document.open();
    document.add(new Paragraph("This document has headers and footers created" + " using the RtfHeaderFooterGroup class.\n\n"));
    // Add some content, so that the different headers / footers show up.
    for (int i = 0; i < 300; i++) {
        document.add(new Paragraph("Just a bit of content so that the headers become visible."));
    }
    document.close();
}
Also used : RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) RtfHeaderFooterGroup(com.lowagie.text.rtf.headerfooter.RtfHeaderFooterGroup) Document(com.lowagie.text.Document) Paragraph(com.lowagie.text.Paragraph) RtfPageNumber(com.lowagie.text.rtf.field.RtfPageNumber) Test(org.junit.Test)

Example 4 with RtfHeaderFooter

use of com.lowagie.text.rtf.headerfooter.RtfHeaderFooter in project itext2 by albfernandez.

the class TotalPageNumberTest method main.

/**
 * Demonstrates creating a header with page number and total number of pages
 */
@Test
public void main() throws Exception {
    Document document = new Document();
    RtfWriter2.getInstance(document, PdfTestBase.getOutputStream("TotalPageNumber.rtf"));
    // Create a new Paragraph for the footer
    Paragraph par = new Paragraph("Page ");
    // Add the RtfPageNumber to the Paragraph
    par.add(new RtfPageNumber());
    // Add the RtfTotalPageNumber to the Paragraph
    par.add(" of ");
    par.add(new RtfTotalPageNumber());
    // Create an RtfHeaderFooter with the Paragraph and set it
    // as a header for the document
    RtfHeaderFooter header = new RtfHeaderFooter(par);
    document.setHeader(header);
    document.open();
    for (int i = 1; i <= 300; i++) {
        document.add(new Paragraph("Line " + i + "."));
    }
    document.close();
}
Also used : RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) RtfTotalPageNumber(com.lowagie.text.rtf.field.RtfTotalPageNumber) Document(com.lowagie.text.Document) Paragraph(com.lowagie.text.Paragraph) RtfPageNumber(com.lowagie.text.rtf.field.RtfPageNumber) Test(org.junit.Test)

Example 5 with RtfHeaderFooter

use of com.lowagie.text.rtf.headerfooter.RtfHeaderFooter in project itext2 by albfernandez.

the class ExtendedHeaderFooterTest method main.

/**
 * Extended headers / footers example
 */
@Test
public void main() throws Exception {
    Document document = new Document();
    RtfWriter2.getInstance(document, PdfTestBase.getOutputStream("ExtendedHeaderFooter.rtf"));
    // Create the Paragraphs that will be used in the header.
    Paragraph date = new Paragraph("01.01.2010");
    date.setAlignment(Paragraph.ALIGN_RIGHT);
    Paragraph address = new Paragraph("TheFirm\nTheRoad 24, TheCity\n" + "+00 99 11 22 33 44");
    // Create the RtfHeaderFooter with an array containing the Paragraphs to
    // add
    RtfHeaderFooter header = new RtfHeaderFooter(new Element[] { date, address });
    // Set the header
    document.setHeader(header);
    // Create the table that will be used as the footer
    Table footer = new Table(2);
    footer.setBorder(0);
    footer.getDefaultCell().setBorder(0);
    footer.setWidth(100);
    footer.addCell(new Cell("(c) Mark Hall"));
    Paragraph pageNumber = new Paragraph("Page ");
    // The RtfPageNumber is an RTF specific element that adds a page number
    // field
    pageNumber.add(new RtfPageNumber());
    pageNumber.setAlignment(Paragraph.ALIGN_RIGHT);
    footer.addCell(new Cell(pageNumber));
    // Create the RtfHeaderFooter and set it as the footer to use
    document.setFooter(new RtfHeaderFooter(footer));
    document.open();
    document.add(new Paragraph("This document has headers and footers created" + " using the RtfHeaderFooter class."));
    document.close();
}
Also used : RtfHeaderFooter(com.lowagie.text.rtf.headerfooter.RtfHeaderFooter) Table(com.lowagie.text.Table) Document(com.lowagie.text.Document) Cell(com.lowagie.text.Cell) Paragraph(com.lowagie.text.Paragraph) RtfPageNumber(com.lowagie.text.rtf.field.RtfPageNumber) Test(org.junit.Test)

Aggregations

Paragraph (com.lowagie.text.Paragraph)7 RtfHeaderFooter (com.lowagie.text.rtf.headerfooter.RtfHeaderFooter)7 Document (com.lowagie.text.Document)6 Test (org.junit.Test)6 RtfPageNumber (com.lowagie.text.rtf.field.RtfPageNumber)5 HeaderFooter (com.lowagie.text.HeaderFooter)3 Phrase (com.lowagie.text.Phrase)3 Cell (com.lowagie.text.Cell)2 Chapter (com.lowagie.text.Chapter)2 Table (com.lowagie.text.Table)2 RtfWriter2 (com.lowagie.text.rtf.RtfWriter2)2 RtfTotalPageNumber (com.lowagie.text.rtf.field.RtfTotalPageNumber)2 RtfHeaderFooterGroup (com.lowagie.text.rtf.headerfooter.RtfHeaderFooterGroup)2 Anchor (com.lowagie.text.Anchor)1 Annotation (com.lowagie.text.Annotation)1 Chunk (com.lowagie.text.Chunk)1 Font (com.lowagie.text.Font)1 Image (com.lowagie.text.Image)1 List (com.lowagie.text.List)1 ListItem (com.lowagie.text.ListItem)1