Example usage for com.itextpdf.text.pdf ColumnText showTextAligned

List of usage examples for com.itextpdf.text.pdf ColumnText showTextAligned

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf ColumnText showTextAligned.

Prototype

public static void showTextAligned(final PdfContentByte canvas, final int alignment, final Phrase phrase,
        final float x, final float y, final float rotation) 

Source Link

Document

Shows a line of text.

Usage

From source file:watermark.java

public static void main(String[] args) {
    try {/*from  w  w w. ja va2  s.  co  m*/
        PdfReader reader = new PdfReader(args[0]);
        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(args[1]));
        stamp.getWriter().setCompressionLevel(9); // without this code it'll 3 times bigger

        int bottom_margin = Integer.parseInt(args[2]);
        String lic = String.format(LIC, args[3]);

        BaseFont bf = BaseFont.createFont(FONTFILE, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        Chunk c = new Chunk(lic, new Font(bf, 7, Font.NORMAL, TCOLOR));
        c.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE, 1 / 800f, null);

        Phrase phrase = new Phrase(c);

        int pages = reader.getNumberOfPages();
        int xpos = 90;
        for (int i = 1; i <= pages; i++) {
            if (i % 2 == 0)
                xpos = 160;
            else
                xpos = 90;

            PdfContentByte under = stamp.getUnderContent(i);
            ColumnText.showTextAligned(under, Element.ALIGN_LEFT, phrase, xpos, bottom_margin, -0);
        }

        stamp.setFullCompression(); // without this code it'll 3 times bigger
        stamp.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:adams.flow.transformer.pdfstamp.Text.java

License:Open Source License

/**
 * Performs the actual stamping.//from  w  ww  .  j  av a2 s .  c om
 *
 * @param stamper   the stamper to use
 * @param page   the page to apply the stamp to
 */
protected void doStamp(PdfStamper stamper, int page) {
    PdfContentByte canvas;
    String text;

    text = getOptionManager().getVariables().expand(m_Template);
    text = text.replace(PLACEHOLDER_0PAGE, "" + page);
    text = text.replace(PLACEHOLDER_1PAGE, "" + (page + 1));
    canvas = stamper.getOverContent(page + 1);
    ColumnText.showTextAligned(canvas, m_Alignment.getAlignment(), new Paragraph(text, m_Font.toFont()), m_X,
            m_Y, m_Rotation);
}

From source file:app.App.java

private void setLink(int pageId, PdfStamper stamper) throws ClassNotFoundException, IOException {
    // load the sqlite-JDBC driver using the current class loader
    Class.forName("org.sqlite.JDBC");

    Connection connection = null;
    try {/*w w  w  . j  av a  2s . com*/
        // create a database connection
        connection = DriverManager.getConnection("jdbc:sqlite:" + DATABASE);
        Statement statement = connection.createStatement();
        statement.setQueryTimeout(30); // set timeout to 30 sec.

        ResultSet rs = statement.executeQuery(
                "select * from page_annotations " + "where annotation_type = 'goto' and page_id = " + pageId);
        float spendX = 0;
        float spendY = 0;
        float coordX = 0;
        float coordY = 0;
        int pageDest = 0;
        Rectangle rect;
        PdfAnnotation annotation;
        while (rs.next()) {
            spendX = rs.getFloat("pdf_width");
            spendY = rs.getFloat("pdf_height");
            coordX = rs.getFloat("pdf_x");// + rs.getFloat("pdf_width");
            coordY = rs.getFloat("pdf_y");
            pageDest = rs.getInt("annotation_target");

            Font font = FontFactory.getFont(FontFactory.COURIER, 10, Font.UNDERLINE);
            // Blue
            font.setColor(0, 0, 255);
            Chunk chunk = new Chunk("GOTO", font);
            Anchor anchor = new Anchor(chunk);
            ColumnText.showTextAligned(stamper.getUnderContent(pageId), Element.ALIGN_LEFT, anchor,
                    coordX + spendX, coordY, 0);

            rect = new Rectangle(coordX, coordY, spendX, spendY);
            annotation = PdfAnnotation.createLink(stamper.getWriter(), rect, PdfAnnotation.HIGHLIGHT_INVERT,
                    new PdfAction("#" + pageDest));
            stamper.addAnnotation(annotation, pageId);
        }
    } catch (SQLException e) {
        // if the error message is "out of memory", 
        // it probably means no database file is found
        System.err.println(e.getMessage());
    } finally {
        try {
            if (connection != null)
                connection.close();
        } catch (SQLException e) {
            // connection close failed.
            System.err.println(e);
        }
    }
}

From source file:araword.classes.HeaderFooter.java

/**
 * Increase the page number./*w  ww  .ja  va  2 s  .c  om*/
 * @see com.itextpdf.text.pdf.PdfPageEventHelper#onStartPage(
 *      com.itextpdf.text.pdf.PdfWriter, com.itextpdf.text.Document)
 */
@Override
public void onStartPage(PdfWriter writer, Document document) {
    pagenumber++;
    System.out.println("ON Start Page PDF");
    Rectangle rect = writer.getBoxSize("art");

    /* header     
    ColumnText.showTextAligned(writer.getDirectContent(),                      
            com.itextpdf.text.Element.ALIGN_RIGHT, header[0],
              rect.getRight(), rect.getTop(), 0);
     */
    Font font = new Font();
    font.setSize(8);
    if (G.licensePDF) {
        ColumnText.showTextAligned(writer.getDirectContent(), com.itextpdf.text.Element.ALIGN_CENTER,
                new Phrase(String.format(TLanguage.getString("EXPORT_PDF_LICENCIA")), font),
                (rect.getLeft() + rect.getRight()) / 2, rect.getBottom() - 18, 0);
        ColumnText.showTextAligned(writer.getDirectContent(), com.itextpdf.text.Element.ALIGN_CENTER,
                new Phrase(String.format(TLanguage.getString("EXPORT_PDF_LICENCIA2")), font),
                (rect.getLeft() + rect.getRight()) / 2, rect.getBottom() - 9, 0);
    }

}

From source file:be.rheynaerde.pufmanager.gui.workers.ExportFullPdfWorker.java

License:Open Source License

private void addPdfToDocument(ByteArrayOutputStream baos, PdfCopy copy, String stampText)
        throws IOException, BadPdfFormatException {
    PdfReader reader = new PdfReader(new ByteArrayInputStream(baos.toByteArray()));
    int n = reader.getNumberOfPages();
    for (int page = 1; page <= n; page++) {
        PdfImportedPage importedPage = copy.getImportedPage(reader, page);
        PdfCopy.PageStamp stamp = copy.createPageStamp(importedPage);
        Rectangle rectangle = importedPage.getBoundingBox();
        ColumnText.showTextAligned(stamp.getUnderContent(), Element.ALIGN_RIGHT, new Phrase(stampText),
                rectangle.getRight() - 20f, rectangle.getTop() - 20f, 0);
        stamp.alterContents();/*w  ww.j  a va2  s .c  o m*/
        copy.addPage(importedPage);
    }
}

From source file:be.roots.taconic.pricingguide.service.PDFServiceImpl.java

License:Open Source License

private byte[] stampTableOfContents(byte[] pdf, Toc tableOfContents) throws IOException, DocumentException {

    try (final ByteArrayOutputStream bos = new ByteArrayOutputStream()) {

        final PdfReader reader = new PdfReader(pdf);
        final PdfStamper stamper = new PdfStamper(reader, bos);

        // stamp the named destinations
        for (int pageNumber = 1; pageNumber <= reader.getNumberOfPages(); pageNumber++) {
            stamper.addNamedDestination("page" + pageNumber, pageNumber,
                    new PdfDestination(PdfDestination.XYZ, 80f, 800f, 0));
        }/*  w w w  .  ja  v  a 2 s  .  c o  m*/

        // create the table of contents
        final Chunk tocTitle = new Chunk("TABLE OF CONTENTS", iTextUtil.getFontTocTitle());

        int currentTocPage = tableOfContents.getFirstPageOfToc();
        int firstTocPage = currentTocPage;
        PdfContentByte canvas = stamper.getOverContent(currentTocPage);

        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(tocTitle), 55, 470, 0);

        final List<TocEntry> entriesSorted = tableOfContents.getEntriesSorted();
        int tocEntryNumber = 0;
        for (TocEntry tocEntry : entriesSorted) {

            if (tocEntry.isIncludedInToc()) {
                tocEntryNumber++;

                // take the right TOC page to stamp the TOC entry on (needed for TOC's with multiple pages)
                if (tocEntryNumber == getNumberOfItemsPerTocPage(0)
                        || (tocEntryNumber > getNumberOfItemsPerTocPage(0)
                                && (tocEntryNumber - getNumberOfItemsPerTocPage(0))
                                        % getNumberOfItemsPerTocPage(currentTocPage - firstTocPage) == 0)) {
                    currentTocPage++;
                    canvas = stamper.getOverContent(currentTocPage);
                }

                Font font = iTextUtil.getFontToc();
                if (tocEntry.getLevel() == 1) {
                    font = iTextUtil.getFontTocBold();
                }

                final Phrase p = processHtmlCodes(tocEntry.getLevelString() + tocEntry.getName(), font,
                        iTextUtil.getFontTocSymbol());
                p.add(new Chunk("", iTextUtil.getFontToc()));
                if (tocEntry.isShowingPageNumber()) {
                    p.add(new Chunk(new DottedLineSeparator()));
                    p.add(new Chunk("  " + String.valueOf(tocEntry.getFinalPageNumber()),
                            iTextUtil.getFontToc()));
                }

                for (Chunk chunk : p.getChunks()) {
                    chunk.setAction(PdfAction.gotoLocalPage("page" + tocEntry.getFinalPageNumber(), false));
                }

                int y;
                if (tocEntryNumber < getNumberOfItemsPerTocPage(0)) {
                    y = 460 - (16 * (tocEntryNumber % getNumberOfItemsPerTocPage(0)));
                } else {
                    y = 680 - (16 * ((tocEntryNumber - getNumberOfItemsPerTocPage(0))
                            % getNumberOfItemsPerTocPage(currentTocPage - firstTocPage)));
                }

                final ColumnText ct = new ColumnText(canvas);
                ct.setSimpleColumn(p, 52, y, 555, 70, 0, Element.ALIGN_JUSTIFIED);
                ct.go();

            }
        }

        stamper.close();
        reader.close();

        return bos.toByteArray();

    }

}

From source file:be.roots.taconic.pricingguide.util.iTextUtil.java

License:Open Source License

public static byte[] setPageNumbers(byte[] pdfDocument) throws IOException, DocumentException {

    final int numberOfPages = numberOfPages(pdfDocument);

    if (numberOfPages > 1) {

        try (final ByteArrayOutputStream baos = new ByteArrayOutputStream()) {

            final PdfReader reader = new PdfReader(pdfDocument);
            final PdfStamper stamper = new PdfStamper(reader, baos);

            for (int pageNumber = 2; pageNumber <= numberOfPages; pageNumber++) {
                // get the first page
                final PdfContentByte canvas = stamper.getOverContent(pageNumber);

                // stamp the footer on the page
                final ColumnText ct = new ColumnText(canvas);

                ColumnText.showTextAligned(canvas, Element.ALIGN_CENTER,
                        new Phrase(pageNumber + "", getFontPageNumber()), 550, 22, 0);
                ct.go();//from   w ww. j ava2  s.  c  o  m

            }

            // close out
            stamper.close();
            reader.close();

            return baos.toByteArray();

        }

    }

    return pdfDocument;

}

From source file:book.pdftemplates.FillTemplateHelper.java

@Override
public void onCloseDocument(PdfWriter writer, Document document) {
    // we only know the total number of pages at the moment the document is closed.
    String s = "/" + (writer.getPageNumber() - 1);
    Phrase p = new Phrase(12, s, font);
    ColumnText.showTextAligned(total, Element.ALIGN_LEFT, p, 0.5f, 0, 0);
}

From source file:cl.preguntame.clases.Cabecera.java

/**
 * Realiza el conteo de paginas al momento de cerrar el documento
 */// w  w w .j  a v  a 2  s  . c o  m
public void onCloseDocument(PdfWriter writer, Document document) {
    int totalLength = String.valueOf(writer.getPageNumber()).length();
    int totalWidth = totalLength * 5;
    ColumnText.showTextAligned(total, Element.ALIGN_RIGHT,
            new Phrase(String.valueOf(writer.getPageNumber()), new Font(Font.FontFamily.HELVETICA, 8)),
            totalWidth, 6, 0);
}

From source file:com.afrisoftech.lib.HeaderFooterHelper.java

public void onEndPage(PdfWriter writer, Document document) {
    PdfContentByte cb = writer.getDirectContent();
    // Phrase header = new Phrase("this is a header", ffont);
    // Phrase footer = new Phrase("this is a footer", ffont);
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, header,
            (document.right() - document.left()) / 2 + document.leftMargin(), document.top() + 10, 0);
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER,
            new Phrase(footer.getContent() + " " + String.valueOf(writer.getPageNumber())),
            (document.right() - document.left()) / 2 + document.leftMargin(), document.bottom() - 10, 0);
}