/** * 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(); }
/** * This message creates the footer element for the exported document. * * @param queryInstance * The query instance to extract needed data from. * @param user * The user. * @param resourcesManager * The resources manager to retreive resources from. * @return An object to be used as a header. * @throws MalformedURLException * {@link MalformedURLException}. * @throws BadElementException * {@link BadElementException}. */ private Element getFooter(NoteQueryParameters queryInstance, User user, ResourceBundleManager resourcesManager) throws MalformedURLException, BadElementException { Table table = new Table(2); table.setWidths(new float[] { 60, 40 }); table.setWidth(100); table.setPadding(5); table.setBorder(Table.TOP); Cell serviceCell = new Cell(); serviceCell.setBorder(Cell.TOP); serviceCell.add(RtfElementFactory.createChunk( resourcesManager.getText("export.post.footer.service", user.getLanguageLocale()) + " ", null)); serviceCell.add(RtfElementFactory.createChunk(resourcesManager.getText( "export.post.footer.service.provider", user.getLanguageLocale()))); Cell pageNumberCell = new Cell(); pageNumberCell.setHorizontalAlignment(Cell.ALIGN_RIGHT); pageNumberCell.setBorder(Cell.TOP); pageNumberCell.add(RtfElementFactory.createChunk(resourcesManager.getText( "export.post.footer.page", user.getLanguageLocale()) + " ")); pageNumberCell.add(new RtfPageNumber()); pageNumberCell .add(RtfElementFactory.createChunk(" " + resourcesManager.getText("export.post.footer.of", user.getLanguageLocale()) + " ")); pageNumberCell.add(new RtfTotalPageNumber()); table.addCell(serviceCell); table.addCell(pageNumberCell); return table; }
/** * 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; }