Example usage for com.lowagie.text.pdf PdfWriter PageModeUseOutlines

List of usage examples for com.lowagie.text.pdf PdfWriter PageModeUseOutlines

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfWriter PageModeUseOutlines.

Prototype

int PageModeUseOutlines

To view the source code for com.lowagie.text.pdf PdfWriter PageModeUseOutlines.

Click Source Link

Document

A viewer preference

Usage

From source file:questions.stamppages.BookmarksToTOC1.java

@SuppressWarnings("unchecked")
public static void main(String[] args) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {//from w  w w  .j av  a  2s. c  o  m
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, baos);
        writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
        writer.setPageEvent(new ParagraphBookmarkEvents(false));
        document.open();
        BufferedReader reader = new BufferedReader(new FileReader(RESOURCE));
        String line;
        Paragraph p;
        while ((line = reader.readLine()) != null) {
            p = new Paragraph(line);
            p.setAlignment(Element.ALIGN_JUSTIFIED);
            document.add(p);
            document.add(Chunk.NEWLINE);
        }
        reader.close();
        document.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }

    try {
        PdfReader reader = new PdfReader(baos.toByteArray());
        Rectangle rect = reader.getPageSizeWithRotation(1);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
        stamper.insertPage(1, rect);
        ColumnText column = new ColumnText(stamper.getOverContent(1));
        column.setSimpleColumn(rect.getLeft(36), rect.getBottom(36), rect.getRight(36), rect.getTop(36));
        column.addElement(new Paragraph("TABLE OF CONTENTS"));
        List<Map> list = SimpleBookmark.getBookmark(reader);
        Chunk link;
        PdfAction action;
        String info;
        int p = 1;
        float y = 10;
        for (Map<String, String> bookmark : list) {
            link = new Chunk(bookmark.get("Title"));
            info = bookmark.get("Page");
            p = Integer.parseInt(info.substring(0, info.indexOf(' ')));
            y = Float.parseFloat(info.substring(info.lastIndexOf(' ') + 1) + "f");
            action = PdfAction.gotoLocalPage(p, new PdfDestination(PdfDestination.FITH, y),
                    stamper.getWriter());
            link.setAction(action);
            column.addElement(new Paragraph(link));
        }
        column.go();
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }

}

From source file:questions.stamppages.BookmarksToTOC2.java

@SuppressWarnings("unchecked")
public static void main(String[] args) {
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    try {/* www  .  j  a va 2s. c o  m*/
        Document document = new Document();
        PdfWriter writer = PdfWriter.getInstance(document, baos);
        writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
        writer.setPageEvent(new ParagraphBookmarkEvents(true));
        document.open();
        BufferedReader reader = new BufferedReader(new FileReader(RESOURCE));
        String line;
        Paragraph p;
        while ((line = reader.readLine()) != null) {
            p = new Paragraph(line);
            p.setAlignment(Element.ALIGN_JUSTIFIED);
            document.add(p);
            document.add(Chunk.NEWLINE);
        }
        reader.close();
        document.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }

    try {
        PdfReader reader = new PdfReader(baos.toByteArray());
        Rectangle rect = reader.getPageSizeWithRotation(1);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
        stamper.insertPage(1, rect);
        ColumnText column = new ColumnText(stamper.getOverContent(1));
        column.setSimpleColumn(rect.getLeft(36), rect.getBottom(36), rect.getRight(36), rect.getTop(36));
        column.addElement(new Paragraph("TABLE OF CONTENTS"));
        List<Map> list = SimpleBookmark.getBookmark(reader);
        Chunk link;
        String dest;
        for (Map<String, String> bookmark : list) {
            link = new Chunk(bookmark.get("Title"));
            dest = bookmark.get("Named");
            link.setAction(PdfAction.gotoLocalPage(dest, false));
            column.addElement(new Paragraph(link));
        }
        column.go();
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }

}

From source file:webBoltOns.server.reportWriter.JRivetWriter.java

License:Open Source License

/**
 * <h2><code>buildReport</code></h2>
 * //from  w  ww  .  ja v a  2s.c o  m
 * <p>
 *  Create the PDF report        
 * </p>
 * 
 * @param   ServletRequest request  - the HTTP request
 * @param   ServletResponse response - the HTTP respones
 * 
 */
private void buildReport(ServletRequest request, ServletResponse response, DataSet reportTable) {
    try {

        rowCount = 999;
        totalRows = 0;
        document = new Document(PageSize.LEGAL.rotate());
        document.setMargins(8.0f, 8.0f, 8.0f, 18.0f);

        outputStream = new ByteArrayOutputStream();
        writer = PdfWriter.getInstance(document, outputStream);
        writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
        buildReportTitles(reportTable);

        document.open();

        contentByte = writer.getDirectContent();
        root = new PdfOutline(contentByte.getRootOutline(), new PdfDestination(PdfDestination.FIT), "Report");

        topA.setOutline(root);

        ResultSet resultSet;
        Statement statement = dataAccess.execConnectReadOnly();

        sql = new StringBuffer(reportTable.getStringField(ReportColumn.SQL_QUERY));

        sql = DataSet.removeFormat(sql, "\n");
        sql = DataSet.removeFormat(sql, "\t");

        Enumeration parameters = request.getParameterNames();
        while (parameters.hasMoreElements()) {
            String p = (String) parameters.nextElement();
            String v = request.getParameter(p);
            if (!p.equals("ReportScript") && !p.equals("") && !v.equals(""))
                sql = mergeTagValues(sql, p, v);
        }

        resultSet = statement.executeQuery(sql.toString().trim());
        String[] record = new String[reportColumns.length];

        while (resultSet.next()) {
            for (int c = 0; c < reportColumns.length; c++) {
                ReportColumn column = (ReportColumn) reportColumns[c];
                String value = (String) DataAccess.getFieldValue(resultSet, column.getFeildName(),
                        column.getDataType());
                record[c] = formatField(value, column.getDataType(), column.getDecimals());
            }

            topA.recursiveLevelBreaks(record);
            buildDetilLine(record);
            accumulateReportTotals(record);
            totalRows++;
        }

        if (totalRows == 0) {
            buildEmptyPage(request, response);

        } else {
            topA.fireGrandTotalBreak();
            resultSet.close();
            dataAccess.execClose(statement);
            document.add(reportBody);
            document.close();
            buildPDFReportPage(request, response, outputStream.toByteArray());
        }

    } catch (DocumentException e) {
        gs.log("** DocumentException: " + e);
        buildErrorPage(request, response, e.toString());
    } catch (IOException e) {
        gs.log("** IOException: " + e);
        buildErrorPage(request, response, e.toString());
    } catch (Exception e) {
        gs.log("** Exception: " + e);
        buildErrorPage(request, response, e.toString());
    }

}