Example usage for com.lowagie.text.pdf ByteBuffer ByteBuffer

List of usage examples for com.lowagie.text.pdf ByteBuffer ByteBuffer

Introduction

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

Prototype

public ByteBuffer() 

Source Link

Document

Creates new ByteBuffer with capacity 128

Usage

From source file:it.flavianopetrocchi.jpdfbookmarks.itextbookmarksconverter.iTextBookmarksConverter.java

License:Open Source License

private Bookmark bookmarkFromDictionary(PdfDictionary outline) {
    if (outline == null) {
        return null;
    }//ww  w  . ja  v  a  2s  .c om
    Bookmark bookmark = new Bookmark();
    PdfString title = (PdfString) PdfReader.getPdfObjectRelease(outline.get(PdfName.TITLE));
    bookmark.setTitle(title.toUnicodeString());
    PdfArray color = (PdfArray) PdfReader.getPdfObjectRelease(outline.get(PdfName.C));
    if (color != null && color.size() == 3) {
        ByteBuffer out = new ByteBuffer();
        out.append(color.getAsNumber(0).floatValue()).append(' ');
        out.append(color.getAsNumber(1).floatValue()).append(' ');
        out.append(color.getAsNumber(2).floatValue());
        bookmark.setColor(new Color(color.getAsNumber(0).floatValue(), color.getAsNumber(1).floatValue(),
                color.getAsNumber(2).floatValue()));
    }
    PdfNumber style = (PdfNumber) PdfReader.getPdfObjectRelease(outline.get(PdfName.F));
    if (style != null) {
        int f = style.intValue();
        if ((f & 1) != 0) {
            bookmark.setItalic(true);
        }
        if ((f & 2) != 0) {
            bookmark.setBold(true);
        }
    }
    PdfNumber count = (PdfNumber) PdfReader.getPdfObjectRelease(outline.get(PdfName.COUNT));
    if (count != null && count.intValue() < 0) {
        bookmark.setOpened(false);
    } else {
        bookmark.setOpened(true);
    }
    try {
        PdfObject dest = PdfReader.getPdfObjectRelease(outline.get(PdfName.DEST));
        if (dest != null) {
            mapGotoBookmark(bookmark, dest);
        } else {
            PdfDictionary action = (PdfDictionary) PdfReader.getPdfObjectRelease(outline.get(PdfName.A));
            if (action != null) {
                setActionsRecursive(bookmark, action);
            } else {
                bookmark.setType(BookmarkType.Unknown);
            }
        }
    } catch (Exception e) {
        //empty on purpose
    }
    return bookmark;
}